using System; using System.Windows.Media; using Comal.Classes; using InABox.Configuration; using InABox.Core; using InABox.DynamicGrid; using PRSDesktop.WidgetGroups; namespace PRSDesktop.Dashboards { public class CompletedAssignmentDashboardProperties : IUserConfigurationSettings, IDashboardProperties { } public class CompletedAssignmentDashboardElement : DashboardElement { } public class CompletedAssignmentDashboard : DynamicDataGrid, IDashboardWidget { public void Setup() { Options .BeginUpdate() .Clear() .Add(DynamicGridOption.SelectColumns) .EndUpdate(); ActionColumns.Add(new DynamicMenuColumn(CreateMenu, GetStatus)); ColumnsTag = GetType().Name; Refresh(true,false); } private DynamicMenuStatus GetStatus(CoreRow row) { return DynamicMenuStatus.Enabled; } private void CreateMenu(DynamicMenuColumn menu, CoreRow? row) { menu.AddItem("View Forms", null, ViewFormsClick); menu.AddItem("Open Job", null, OpenJobClick); menu.AddSeparator(); menu.AddItem("Create Quote", null, CreateQuoteClick); menu.AddSeparator(); menu.AddItem("Mark as Processed", null, MarkAsProcessedClick); } private void ViewFormsClick(CoreRow obj) { } private void OpenJobClick(CoreRow obj) { } private void CreateQuoteClick(CoreRow obj) { } private void MarkAsProcessedClick(CoreRow obj) { } public void Shutdown() { } public void Refresh() { Refresh(false, true); } protected override void Reload(Filters criteria, Columns columns, ref SortOrder? sort, Action action) { criteria.Add( new Filter(x => x.Completed).IsNotEqualTo(DateTime.MinValue) .And(x => x.Processed).IsEqualTo(DateTime.MinValue) ); base.Reload(criteria, columns, ref sort, action); } protected override DynamicGridStyle GetRowStyle(CoreRow row, DynamicGridStyle style) { var result = base.GetRowStyle(row, style); var completed = row.Get(c => c.Completed); if (completed < DateTime.Today.AddDays(-2)) result.Background = new SolidColorBrush(Colors.LightSalmon); else if (completed < DateTime.Today) result.Background = new SolidColorBrush(Colors.Wheat); else result.Background = new SolidColorBrush(Colors.LightGreen); return result; } public CompletedAssignmentDashboardProperties Properties { get; set; } public event LoadSettings? LoadSettings; public event SaveSettings? SaveSettings; } }