Browse Source

Added CRC to DocumentLink
Mad DocumentApprovalControl null-aware

Kenric Nugteren 1 year ago
parent
commit
3f7424b3ae

+ 3 - 0
InABox.Core/Classes/Document/DocumentLink.cs

@@ -17,6 +17,9 @@ namespace InABox.Core
         [EditorSequence(3)]
         public bool Private { get; set; }
 
+        [NullEditor]
+        public string CRC { get; set; }
+
         public override string ToString()
         {
             return FileName;

+ 25 - 17
inabox.wpf/DynamicGrid/PDF/DocumentApprovalControl.xaml.cs

@@ -24,17 +24,17 @@ namespace InABox.Wpf
     /// </summary>
     public partial class DocumentApprovalControl : UserControl, IDocumentEditor
     {
-        public delegate void MarkupSelected(IEntityDocument document);
-        public event MarkupSelected OnMarkupSelected;
+        public delegate void MarkupSelected(IEntityDocument? document);
+        public event MarkupSelected? OnMarkupSelected;
 
-        public delegate void MarkupComplete(IEntityDocument document);
-        public event MarkupComplete OnMarkupComplete;
+        public delegate void MarkupComplete(IEntityDocument? document);
+        public event MarkupComplete? OnMarkupComplete;
 
-        public delegate void Approved(IEntityDocument document);
-        public event Approved OnApproved;
+        public delegate void Approved(IEntityDocument? document);
+        public event Approved? OnApproved;
 
-        public delegate void Rejected(IEntityDocument document);
-        public event Rejected OnRejected;
+        public delegate void Rejected(IEntityDocument? document);
+        public event Rejected? OnRejected;
         public enum ControlMode
         {
             Markup,
@@ -81,8 +81,8 @@ namespace InABox.Wpf
             rejectButton.Visibility = rejectVisible? Visibility.Visible : Visibility.Collapsed;
         }
 
-        private IEntityDocument _document;
-        public IEntityDocument Document
+        private IEntityDocument? _document;
+        public IEntityDocument? Document
         {
             get => _document;
             set
@@ -104,10 +104,18 @@ namespace InABox.Wpf
         private void Render()
         {
             viewer.Children.Clear();
-            var table = new Client<Document>().Query(new Filter<Document>(x => x.ID).IsEqualTo(_document.DocumentLink.ID));
-            if (!table.Rows.Any())
+            if(Document is null)
+            {
+                return;
+            }
+
+            var table = new Client<Document>().Query(
+                new Filter<Document>(x => x.ID).IsEqualTo(Document.DocumentLink.ID),
+                new Columns<Document>(x => x.Data));
+            var first = table.Rows.FirstOrDefault();
+            if (first is null)
                 return;
-            var data = table.Rows.FirstOrDefault().Get<Document, byte[]>(x => x.Data);
+            var data = first.Get<Document, byte[]>(x => x.Data);
             var images = ImageUtils.RenderPDFToImages(data);
             foreach (var image in images)
             {
@@ -125,23 +133,23 @@ namespace InABox.Wpf
             {
                 Mode = ControlMode.Complete;
                 MessageBox.Show("IMPORTANT - press save in your document editor, then press the Complete Button in PRS");
-                OnMarkupSelected?.Invoke(_document);
+                OnMarkupSelected?.Invoke(Document);
             }
             else
             {
-                OnMarkupComplete?.Invoke(_document);
+                OnMarkupComplete?.Invoke(Document);
                 Mode = ControlMode.Markup;
             }
         }
 
         private void ApproveButton_Click(object sender, RoutedEventArgs e)
         {
-            OnApproved?.Invoke(_document);
+            OnApproved?.Invoke(Document);
         }
 
         private void RejectButton_Click(object sender, RoutedEventArgs e)
         {
-            OnRejected?.Invoke(_document);
+            OnRejected?.Invoke(Document);
         }
     }
 }

+ 1 - 1
inabox.wpf/DynamicGrid/PDF/IDocumentEditor.cs

@@ -4,6 +4,6 @@ namespace InABox.DynamicGrid
 {
     public interface IDocumentEditor
     {
-        IEntityDocument Document { get; set; }
+        IEntityDocument? Document { get; set; }
     }
 }