| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using System.IO;
- using System.Linq;
- using InABox.Clients;
- using InABox.Core;
- using Xamarin.Forms;
- namespace PRS.Mobile
- {
-
- public class DigitalFormImage : Image, IDigitalFormControl<DFLayoutImage>
- {
- private DFLayoutImage _definition;
- public DFLayoutImage Definition
- {
- get => _definition;
- set
- {
- _definition = value;
- Initialize(value ?? new DFLayoutImage());
- }
- }
- public DigitalFormImage()
- {
- MinimumHeightRequest = 150;
- MinimumWidthRequest = 150;
- Aspect = Aspect.AspectFit;
- HorizontalOptions = LayoutOptions.FillAndExpand;
- VerticalOptions = LayoutOptions.FillAndExpand;
- GestureRecognizers.Add(
- new TapGestureRecognizer
- {
- Command = new Command(OnTap),
- NumberOfTapsRequired = 1
- }
- );
- }
-
- private void OnTap(object obj)
- {
- if (Source != null)
- {
- ImageViewerPage viewer = new ImageViewerPage(Source);
- Navigation.PushAsync(viewer);
- }
- }
-
- private void Initialize(DFLayoutImage image)
- {
- var row = new Client<Document>().Query(
- new Filter<Document>(x => x.ID).IsEqualTo(image.Image.ID)
- ).Rows.FirstOrDefault();
-
- if (row != null)
- {
- byte[] data = row.Get<Document, byte[]>(x => x.Data);
- Source = ImageSource.FromStream(() => new MemoryStream(data));
- }
- }
-
- }
- }
|