12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using System;
- using System.IO;
- using System.Threading.Tasks;
- using InABox.Core;
- using InABox.Mobile;
- using Syncfusion.SfImageEditor.XForms;
- using Xamarin.Forms;
- using Xamarin.Forms.Xaml;
- using XF.Material.Forms.UI.Dialogs;
- namespace PRS.Mobile.Modules.DocScanner
- {
- [XamlCompilation(XamlCompilationOptions.Compile)]
- public partial class DocScannerEditor
- {
- public DocScannerEditor(DataEntryDocumentShell document)
- {
- InitializeComponent();
- ViewModel.Document = document;
- _imageEditor.Source = ImageSource.FromStream(() => new MemoryStream(ViewModel.Image?.Data ?? new byte[] { }));
-
- _imageEditor.ToolbarSettings.ToolbarItems.Add(
- new HeaderToolbarItem
- {
- Name = "CustomRotate",
- Text = "Rotate",
- });
-
- _imageEditor.ToolbarSettings.ToolbarItemSelected += ToolbarSettings_CustomButtonClicked;
-
- }
- private void ToolbarSettings_CustomButtonClicked(object sender, ToolbarItemSelectedEventArgs e)
- {
- switch (e.ToolbarItem.Name)
- {
- case "CustomRotate":
- _imageEditor.Rotate();
- break;
- }
- }
- protected override void OnAppearing()
- {
- base.OnAppearing();
- _imageEditor.SetToolbarItemVisibility("save", false);
- }
- private async void ImageEditor_ImageSaving(object sender, ImageSavingEventArgs args)
- {
- args.Cancel = true;
-
- using (await MaterialDialog.Instance.LoadingDialogAsync("Saving Data"))
- {
- if (ViewModel.Image != null)
- {
- var stream = args.Stream;
- MemoryStream memoryStream = new MemoryStream();
- await stream.CopyToAsync(memoryStream);
- ViewModel.Image.Data = memoryStream.ToArray();
- ViewModel.Image.CRC = CoreUtils.CalculateCRC(ViewModel.Image.Data);
- ViewModel.Image.TimeStamp = DateTime.Now;
- ViewModel.Image.Save("Updated from Mobile Device");
- ViewModel.Document.Thumbnail =
- MobileUtils.ImageTools.CreateThumbnail(ViewModel.Image.Data, 256, 256);
- }
- ViewModel.Document.Save("Updated from Mobile Device");
- }
- Navigation.PopAsync();
- }
- private void SaveBtn_Clicked(object sender, MobileMenuButtonClickedEventArgs args)
- {
- _imageEditor.Save();
- }
- }
- }
|