EntityDocumentUtils.cs 1.1 KB

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