AssignmentEdit.xaml.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using Comal.Classes;
  3. using InABox.Core;
  4. using Xamarin.Forms;
  5. using Xamarin.Forms.Xaml;
  6. using XF.Material.Forms.UI;
  7. using XF.Material.Forms.UI.Dialogs;
  8. namespace comal.timesheets
  9. {
  10. [XamlCompilation(XamlCompilationOptions.Compile)]
  11. public partial class AssignmentEdit
  12. {
  13. public AssignmentDetailModel DataModel { get; private set; }
  14. public AssignmentEdit(AssignmentShell assignment)
  15. {
  16. DataModel = new AssignmentDetailModel(App.Data, () => new Filter<Assignment>(x=>x.ID).IsEqualTo(assignment.Id));
  17. BindingContext = DataModel;
  18. InitializeComponent();
  19. DataModel.Load(() => LoadPages());
  20. }
  21. public AssignmentEdit(Assignment assignment)
  22. {
  23. DataModel = new AssignmentDetailModel(App.Data, () => new Filter<Assignment>(x=>x.ID).IsEqualTo(assignment.ID));
  24. BindingContext = DataModel;
  25. InitializeComponent();
  26. DataModel.Load(assignment, () => LoadPages());
  27. }
  28. private void LoadPages()
  29. {
  30. Dispatcher.BeginInvokeOnMainThread(() =>
  31. {
  32. Title = DataModel.Item.ID == Guid.Empty
  33. ? "New Assignment"
  34. : $"Assignment {DataModel.Item.Number}";
  35. Details.Load();
  36. Map.Load();
  37. Forms.Load();
  38. });
  39. }
  40. private void Button_OnClicked(object sender, EventArgs e)
  41. {
  42. if ((sender is ActionButton button) && int.TryParse(button.Tag?.ToString() ?? "0", out int tag))
  43. TabView.SelectedIndex = tag;
  44. }
  45. private void Save_OnClicked(object sender, EventArgs e)
  46. {
  47. DataModel.Save("Saved by PRS Mobile");
  48. Navigation.PopAsync();
  49. }
  50. private void Details_OnOnDetailsChanged(object sender, AssignmentDetailsChangedArgs args)
  51. {
  52. if (String.Equals(args.Property, "Job"))
  53. Map.Load();
  54. }
  55. }
  56. }