CompletedAssignmentDashboard.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. using System;
  2. using System.Windows.Media;
  3. using Comal.Classes;
  4. using InABox.Configuration;
  5. using InABox.Core;
  6. using InABox.DynamicGrid;
  7. using PRSDesktop.WidgetGroups;
  8. namespace PRSDesktop.Dashboards
  9. {
  10. public class CompletedAssignmentDashboardProperties : IUserConfigurationSettings, IDashboardProperties
  11. {
  12. }
  13. public class CompletedAssignmentDashboardElement : DashboardElement<CompletedAssignmentDashboard, HumanResources,
  14. CompletedAssignmentDashboardProperties>
  15. {
  16. }
  17. public class CompletedAssignmentDashboard : DynamicDataGrid<Assignment>,
  18. IDashboardWidget<HumanResources, CompletedAssignmentDashboardProperties>
  19. {
  20. public void Setup()
  21. {
  22. Options
  23. .BeginUpdate()
  24. .Clear()
  25. .Add(DynamicGridOption.SelectColumns)
  26. .EndUpdate();
  27. ActionColumns.Add(new DynamicMenuColumn(CreateMenu, GetStatus));
  28. ColumnsTag = GetType().Name;
  29. Refresh(true,false);
  30. }
  31. private DynamicMenuStatus GetStatus(CoreRow row)
  32. {
  33. return DynamicMenuStatus.Enabled;
  34. }
  35. private void CreateMenu(DynamicMenuColumn menu, CoreRow? row)
  36. {
  37. menu.AddItem("View Forms", null, ViewFormsClick);
  38. menu.AddItem("Open Job", null, OpenJobClick);
  39. menu.AddSeparator();
  40. menu.AddItem("Create Quote", null, CreateQuoteClick);
  41. menu.AddSeparator();
  42. menu.AddItem("Mark as Processed", null, MarkAsProcessedClick);
  43. }
  44. private void ViewFormsClick(CoreRow obj)
  45. {
  46. }
  47. private void OpenJobClick(CoreRow obj)
  48. {
  49. }
  50. private void CreateQuoteClick(CoreRow obj)
  51. {
  52. }
  53. private void MarkAsProcessedClick(CoreRow obj)
  54. {
  55. }
  56. public void Shutdown()
  57. {
  58. }
  59. public void Refresh()
  60. {
  61. Refresh(false, true);
  62. }
  63. protected override void Reload(Filters<Assignment> criteria, Columns<Assignment> columns, ref SortOrder<Assignment>? sort, Action<CoreTable?, Exception?> action)
  64. {
  65. criteria.Add(
  66. new Filter<Assignment>(x => x.Completed).IsNotEqualTo(DateTime.MinValue)
  67. .And(x => x.Processed).IsEqualTo(DateTime.MinValue)
  68. );
  69. base.Reload(criteria, columns, ref sort, action);
  70. }
  71. protected override DynamicGridStyle GetRowStyle(CoreRow row, DynamicGridStyle style)
  72. {
  73. var result = base.GetRowStyle(row, style);
  74. var completed = row.Get<Assignment, DateTime>(c => c.Completed);
  75. if (completed < DateTime.Today.AddDays(-2))
  76. result.Background = new SolidColorBrush(Colors.LightSalmon);
  77. else if (completed < DateTime.Today)
  78. result.Background = new SolidColorBrush(Colors.Wheat);
  79. else
  80. result.Background = new SolidColorBrush(Colors.LightGreen);
  81. return result;
  82. }
  83. public CompletedAssignmentDashboardProperties Properties { get; set; }
  84. public event LoadSettings<CompletedAssignmentDashboardProperties>? LoadSettings;
  85. public event SaveSettings<CompletedAssignmentDashboardProperties>? SaveSettings;
  86. }
  87. }