| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- using CommunityToolkit.Mvvm.ComponentModel;
- using InABox.Avalonia;
- using InABox.Avalonia.Components;
- using InABox.Avalonia.Platform;
- using InABox.Core;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace PRS.Avalonia.Modules;
- internal partial class SubmitDocsEditorViewModel : ModuleViewModel
- {
- public override string Title => "Document Editor";
- [ObservableProperty]
- private DataEntryDocumentShell _dataEntryDocument = null!;
- [ObservableProperty]
- public DocumentShell? _document;
- [ObservableProperty]
- private DocumentModel? _documentModel;
- [ObservableProperty]
- private Func<byte[]>? _getImage;
- [ObservableProperty]
- private bool _imageChanged;
- public SubmitDocsEditorViewModel()
- {
- PrimaryMenu.Add(new AvaloniaMenuItem(Images.save, Save));
- }
- protected override Task OnActivated()
- {
- DocumentModel = new DocumentModel(DataAccess,
- () => new Filter<Document>(x => x.ID).IsEqualTo(DataEntryDocument.DocumentID),
- () => DefaultCacheFileName<DocumentShell>(DataEntryDocument.DocumentID));
- return Task.CompletedTask;
- }
- protected override async Task<TimeSpan> OnRefresh()
- {
- await DocumentModel!.RefreshAsync(false);
- Document = DocumentModel.FirstOrDefault();
- return TimeSpan.Zero;
- }
- public override bool OnBackButtonPressed()
- {
- DataEntryDocument.Cancel();
- return base.OnBackButtonPressed();
- }
- private async Task<bool> Save()
- {
- ProgressVisible = true;
- if (ImageChanged && GetImage is not null && Document is not null)
- {
- var imgData = GetImage();
- Document.Data = imgData;
- Document.CRC = CoreUtils.CalculateCRC(imgData);
- Document.TimeStamp = DateTime.Now;
- await DocumentModel!.SaveAsync("Updated from Mobile Device");
- DataEntryDocument.Thumbnail = PlatformTools.ImageTools.CreateThumbnail(imgData, 256, 256);
- }
- await DataEntryDocument.SaveAsync("Updated from Mobile Device");
- ProgressVisible = false;
- Navigation.Back();
- return true;
- }
- }
|