Преглед изворни кода

Fixed Caching Issue in DocumentViewList

frankvandenbos пре 7 месеци
родитељ
комит
d971e3019c
1 измењених фајлова са 9 додато и 0 уклоњено
  1. 9 0
      prs.desktop/Panels/DataEntry/DocumentViewList.cs

+ 9 - 0
prs.desktop/Panels/DataEntry/DocumentViewList.cs

@@ -161,8 +161,10 @@ public abstract class DocumentViewList<TDocument> : UserControl, INotifyProperty
 
     protected abstract Guid GetID(TDocument document);
     protected abstract Guid GetDocumentID(TDocument document);
+    protected abstract string GetDocumentFileName(IEnumerable<TDocument> documents, Document document);
     protected abstract IEnumerable<Document> LoadDocuments(IEnumerable<Guid> ids);
 
+
     public void UpdateViewList(IList<TDocument> documents, bool force = false)
     {
         if (!force && documents.Count == _documents.Count && !documents.Any(x => _documents.All(y => GetID(x) != GetID(y))))
@@ -180,6 +182,8 @@ public abstract class DocumentViewList<TDocument> : UserControl, INotifyProperty
         Task.Run(() =>
         {
             var docs = LoadDocuments(Documents.Select(GetDocumentID).Distinct());
+            foreach (var doc in docs)
+                doc.FileName = GetDocumentFileName(Documents, doc);
             LoadDocuments(docs);
         }).ContinueWith((task) =>
         {
@@ -470,4 +474,9 @@ public class DataEntryViewList : DocumentViewList<DataEntryDocument>
     {
         return document.Document.ID;
     }
+    
+    protected override string GetDocumentFileName(IEnumerable<DataEntryDocument> documents, Document document)
+    {
+        return Documents.FirstOrDefault(x => x.Document.ID == document.ID)?.Document.FileName ?? "";
+    }
 }