DFSignaturePadEditorViewModel.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using CommunityToolkit.Mvvm.ComponentModel;
  2. using InABox.Avalonia;
  3. using PRS.Avalonia.Modules;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace PRS.Avalonia.DigitalForms;
  10. internal partial class DFSignaturePadEditorViewModel : ModuleViewModel
  11. {
  12. public override string Title => "Edit Signature";
  13. [ObservableProperty]
  14. private string _signatureName = "";
  15. [ObservableProperty]
  16. private Func<string, Task<bool>>? _validateName;
  17. [ObservableProperty]
  18. private Action<string, byte[]?>? _signatureSaved;
  19. [ObservableProperty]
  20. private Func<byte[]?>? _getImage;
  21. public DFSignaturePadEditorViewModel()
  22. {
  23. PrimaryMenu.Add(new(Images.tick, Save));
  24. }
  25. private async Task<bool> Save()
  26. {
  27. if(ValidateName is not null)
  28. {
  29. if(!await ValidateName(SignatureName))
  30. {
  31. return true;
  32. }
  33. }
  34. Navigation.Back();
  35. var image = GetImage?.Invoke();
  36. SignatureSaved?.Invoke(SignatureName, image);
  37. return true;
  38. }
  39. }