using System; using System.ComponentModel; using System.Threading; 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() { ActionColumns.Add(new DynamicMenuColumn(CreateMenu, GetStatus)); ColumnsTag = GetType().Name; Refresh(true,false); } protected override void DoReconfigure(DynamicGridOptions options) { base.DoReconfigure(options); options.Clear(); options.SelectColumns = true; } 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(CancelEventArgs? cancel) { } public void Refresh() { Refresh(false, true); } protected override void Reload( Filters criteria, Columns columns, ref SortOrder? sort, CancellationToken token, 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, token, 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; } }