AssignmentEdit.xaml.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. NavigationPage.SetHasBackButton(this, DataModel.Item.ID != Guid.Empty);
  37. Cancel.IsVisible = DataModel.Item.ID == Guid.Empty;
  38. Save.IsVisible = DataModel.Item.ID == Guid.Empty;
  39. });
  40. }
  41. private void Button_OnClicked(object sender, EventArgs e)
  42. {
  43. MaterialButton button = sender as MaterialButton;
  44. TabView.SelectedIndex = int.Parse(button.CommandParameter.ToString());
  45. }
  46. private async void Cancel_OnClicked(object sender, EventArgs e)
  47. {
  48. var confirm = await MaterialDialog.Instance.ConfirmAsync("Are you sure you wish to cancel this action?",
  49. "Confirm Cancel", "OK", "Keep Editing") == true;
  50. if (confirm)
  51. Navigation.PopAsync();
  52. }
  53. private void Save_OnClicked(object sender, EventArgs e)
  54. {
  55. DataModel.Save("Saved by PRS Mobile");
  56. Navigation.PopAsync();
  57. }
  58. private void Details_OnOnDetailsChanged(object sender, AssignmentDetailsChangedArgs args)
  59. {
  60. if (String.Equals(args.Property, "Job"))
  61. Map.Load();
  62. NavigationPage.SetHasBackButton(this, false);
  63. Cancel.IsVisible = true;
  64. Save.IsVisible = true;
  65. }
  66. }
  67. }