DeliveryItemDetailDeliveryDocumentShell.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using System;
  2. using System.IO;
  3. using Comal.Classes;
  4. using Xamarin.Forms;
  5. namespace comal.timesheets
  6. {
  7. public interface IDocumentShell
  8. {
  9. Guid EntityID { get; }
  10. Guid ID { get; }
  11. String FileName { get; }
  12. ImageSource Thumbnail { get; }
  13. }
  14. public class DeliveryItemDetailDeliveryDocumentShell : Shell<DeliveryItemDetailModel, DeliveryDocument>, IDocumentShell
  15. {
  16. static DeliveryItemDetailDeliveryDocumentShell()
  17. {
  18. Columns
  19. .Map(nameof(EntityID), x=>x.EntityLink.ID)
  20. .Map(nameof(ID), x => x.DocumentLink.ID)
  21. .Map(nameof(FileName), x => x.DocumentLink.FileName)
  22. .Map(nameof(_thumbnail), x=>x.Thumbnail);
  23. }
  24. public Guid EntityID => Get<Guid>();
  25. public Guid ID => Get<Guid>();
  26. public String FileName => Get<String>();
  27. private byte[] _thumbnail => Get<byte[]>();
  28. public ImageSource Thumbnail => ImageSource.FromStream(() => new MemoryStream(_thumbnail));
  29. }
  30. }