| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using InABox.Clients;
- using InABox.Core;
- using InABox.Mobile;
- using JetBrains.Annotations;
- using Xamarin.Forms;
- namespace PRS.Mobile
- {
- public class ImageViewerPageChangedEventArgs
- {
- public Document Document { get; private set; }
-
- public String AuditMessage { get; private set; }
- public ImageViewerPageChangedEventArgs(Document document, String auditmessage)
- {
- Document = document;
- AuditMessage = auditmessage;
- }
- }
-
- public delegate void ImageViewerPageImageChangedEvent(object sender, ImageViewerPageChangedEventArgs args);
-
- public partial class ImageViewerPage
- {
- [CanBeNull] private Action _deleteaction = null;
- private Document _doc;
- public event ImageViewerPageImageChangedEvent ImageChanged;
-
- public ImageViewerPage(ImageSource image, Action ondelete)
- {
- InitializeComponent();
- BindingContext = image;
- _deleteaction = ondelete;
- _delete.IsVisible = ondelete != null;
- }
-
- public ImageViewerPage(byte[] data, Action ondelete)
- {
- InitializeComponent();
- BindingContext = ImageSource.FromStream(() => new MemoryStream(data));
- _deleteaction = ondelete;
- _delete.IsVisible = ondelete != null;
- }
-
- public ImageViewerPage(Guid id)
- {
- InitializeComponent();
- new Client<Document>().Query(
- new Filter<Document>(x => x.ID).IsEqualTo(id),
- null,
- null,
- (o, e) =>
- {
- _doc = o?.Rows.FirstOrDefault()?.ToObject<Document>();
- if (_doc != null)
- {
- Dispatcher.BeginInvokeOnMainThread(() =>
- {
- BindingContext = ImageSource.FromStream(() => new MemoryStream(_doc.Data));
- _rotate.IsVisible = true;
- });
- }
- }
- );
- }
-
- private void DeleteBtn_Clicked(object sender, EventArgs e)
- {
- _deleteaction?.Invoke();
- Navigation.PopAsync();
- }
- private void _rotate_Clicked(object sender, MobileButtonClickEventArgs args)
- {
- if (_doc == null)
- return;
- _doc.Data = MobileUtils.ImageTools.RotateImage(_doc.Data,90F,100);
- _doc.CRC = CoreUtils.CalculateCRC(_doc.Data);
- var msg = "Image Rotated on Mobile Device";
- new Client<Document>().Save(_doc, msg);
- BindingContext = ImageSource.FromStream(() => new MemoryStream(_doc.Data));
- ImageChanged?.Invoke(this, new ImageViewerPageChangedEventArgs(_doc,msg));
- }
- }
- }
|