EntityDocumentUtils.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using InABox.Clients;
  2. using InABox.Core;
  3. using JetBrains.Annotations;
  4. using InABox.Avalonia.Platform;
  5. namespace InABox.Avalonia
  6. {
  7. public static class EntityDocumentUtils
  8. {
  9. [CanBeNull]
  10. public static T SaveDocument<T>(MobileDocument image, Func<T> shell, string auditmessage) where T : IEntityDocumentShell
  11. {
  12. T result = shell();
  13. if (result != null)
  14. {
  15. Document doc = new Document()
  16. {
  17. FileName = image.FileName,
  18. Data = image.Data,
  19. CRC = CoreUtils.CalculateCRC(image.Data),
  20. TimeStamp = DateTime.Now
  21. };
  22. new Client<Document>().Save(doc, auditmessage);
  23. result.DocumentID = doc.ID;
  24. result.FileName = doc.FileName;
  25. if ((!image.IsPDF()) && result.Thumbnail?.Any() != true)
  26. result.Thumbnail = PlatformTools.ImageTools.CreateThumbnail(doc.Data, 256, 256);
  27. result.Save(auditmessage);
  28. }
  29. return result;
  30. }
  31. }
  32. }