AssignmentList.xaml.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System;
  2. using System.Collections.Generic;
  3. using InABox.Clients;
  4. using InABox.Core;
  5. using Comal.Classes;
  6. using Xamarin.Forms;
  7. using System.Linq;
  8. using System.Threading.Tasks;
  9. using Syncfusion.SfSchedule.XForms;
  10. using XF.Material.Forms.UI.Dialogs;
  11. namespace comal.timesheets
  12. {
  13. public partial class AssignmentList : ContentPage
  14. {
  15. public AssignmentList()
  16. {
  17. InitializeComponent();
  18. Title.Text = "Assignments";
  19. }
  20. private void Refresh()
  21. {
  22. DataModel.Load(
  23. new Filter<Assignment>(x => x.Date).IsEqualTo(DatePicker.Date).And(x => x.EmployeeLink.ID)
  24. .IsEqualTo(App.Data.Employee.ID),
  25. null //() => { }
  26. );
  27. }
  28. private void BackButton_OnClicked(object sender, EventArgs e)
  29. {
  30. Navigation.PopAsync();
  31. }
  32. private void Schedule_OnVisibleDatesChangedEvent(object sender, VisibleDatesChangedEventArgs e)
  33. {
  34. Title.Text = $"{e.visibleDates.First():dd MMMM yyyy}";
  35. DatePicker.Date = e.visibleDates.First();
  36. Refresh();
  37. }
  38. private void SelectedDate_Tapped(object sender, EventArgs e)
  39. {
  40. DatePicker.Focus();
  41. }
  42. private void DatePicker_OnDateSelected(object sender, DateChangedEventArgs e)
  43. {
  44. Schedule.MoveToDate = e.NewDate;
  45. }
  46. private void SelectEmployees_Tapped(object sender, EventArgs e)
  47. {
  48. }
  49. private void AddButton_OnClicked(object sender, EventArgs e)
  50. {
  51. // Need to Create a new Assignment Screen
  52. }
  53. private async void Schedule_OnCellTapped(object sender, CellTappedEventArgs e)
  54. {
  55. if (e.Appointment != null)
  56. {
  57. Guid id = (e.Appointment as AssignmentListDataModelItem).Id;
  58. var editor = new AssignmentEdit(id);
  59. Navigation.PushAsync(editor);
  60. }
  61. }
  62. private async void Schedule_OnCellLongPressed(object sender, CellTappedEventArgs e)
  63. {
  64. if (e.Appointment == null)
  65. {
  66. var assignment = new Assignment()
  67. {
  68. Date = e.Datetime.Date,
  69. Start = e.Datetime.TimeOfDay,
  70. Finish = e.Datetime.TimeOfDay.Add(new TimeSpan(1, 0, 0)),
  71. Title = "New Assignment"
  72. };
  73. var editor = new AssignmentEdit(assignment);
  74. Navigation.PushAsync(editor);
  75. }
  76. }
  77. }
  78. }