AssignmentEdit.xaml.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System;
  2. using Comal.Classes;
  3. using Xamarin.Forms;
  4. using Xamarin.Forms.Xaml;
  5. using XF.Material.Forms.UI;
  6. using XF.Material.Forms.UI.Dialogs;
  7. namespace comal.timesheets
  8. {
  9. [XamlCompilation(XamlCompilationOptions.Compile)]
  10. public partial class AssignmentEdit : ContentPage
  11. {
  12. public AssignmentEdit(AssignmentListDataModelItem assignment)
  13. {
  14. InitializeComponent();
  15. DataModel.JobID = assignment.JobID;
  16. DataModel.EmployeeID = assignment.EmployeeId;
  17. DataModel.Load(assignment.Id, () => LoadPages());
  18. }
  19. public AssignmentEdit(Assignment assignment)
  20. {
  21. InitializeComponent();
  22. DataModel.JobID = assignment.JobLink.ID;
  23. DataModel.EmployeeID = assignment.EmployeeLink.ID;
  24. DataModel.Load(assignment, () => LoadPages());
  25. }
  26. private void LoadPages()
  27. {
  28. Dispatcher.BeginInvokeOnMainThread(() =>
  29. {
  30. Title.Text = DataModel.Item.ID == Guid.Empty
  31. ? "New Assignment"
  32. : $"Assignment {DataModel.Item.Number}";
  33. Details.Load();
  34. Map.Load();
  35. Forms.Load();
  36. });
  37. }
  38. private void Button_OnClicked(object sender, EventArgs e)
  39. {
  40. MaterialButton button = sender as MaterialButton;
  41. TabView.SelectedIndex = int.Parse(button.CommandParameter.ToString());
  42. }
  43. private async void Cancel_OnClicked(object sender, EventArgs e)
  44. {
  45. var confirm = await MaterialDialog.Instance.ConfirmAsync("Are you sure you wish to cancel this action?",
  46. "Confirm Cancel", "OK", "Keep Editing") == true;
  47. if (confirm)
  48. Navigation.PopAsync();
  49. }
  50. private void Save_OnClicked(object sender, EventArgs e)
  51. {
  52. DataModel.Save("Saved by PRS Mobile");
  53. Navigation.PopAsync();
  54. }
  55. private void Details_OnOnDetailsChanged(object sender, AssignmentDetailsChangedArgs args)
  56. {
  57. if (String.Equals(args.Property, "Job"))
  58. Map.Load();
  59. NavigationPage.SetHasBackButton(this, false);
  60. Cancel.IsVisible = true;
  61. Save.IsVisible = true;
  62. }
  63. }
  64. }