CompletedAssignmentDashboard.cs 3.5 KB

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