12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using System;
- using System.IO;
- using System.Linq;
- using InABox.Clients;
- using InABox.Core;
- using InABox.Mobile;
- 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
- {
- private readonly Action? _deleteaction;
- 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();
- Client.Query(
- new Filter<Document>(x => x.ID).IsEqualTo(id),
- Columns.All<Document>(),
- 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);
- _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));
- }
- }
- }
|