123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using System;
- using System.ComponentModel;
- using System.Threading;
- using Comal.Classes;
- using InABox.Configuration;
- using InABox.Core;
- using InABox.DynamicGrid;
- using PRSDesktop.WidgetGroups;
- namespace PRSDesktop
- {
- internal class JobsRequiringBookingsDashboardProperties : IUserConfigurationSettings, IDashboardProperties { }
- internal class JobsRequiringBookingsDashboardElement : DashboardElement<JobsRequiringBookingsWidget, Projects, JobsRequiringBookingsDashboardProperties> { }
- internal class JobsRequiringBookingsWidget : DynamicDataGrid<Job>, ISpecificGrid, IDashboardWidget<Projects, JobsRequiringBookingsDashboardProperties>
- {
- public JobsRequiringBookingsDashboardProperties Properties { get; set; }
- public event LoadSettings<JobsRequiringBookingsDashboardProperties>? LoadSettings;
- public event SaveSettings<JobsRequiringBookingsDashboardProperties>? SaveSettings;
- public JobsRequiringBookingsWidget()
- {
- HiddenColumns.Add(x => x.Assignments);
- ActionColumns.Add(new DynamicTextColumn(RebookingIndicator) { Position = DynamicActionColumnPosition.End, Width = 50});
- ActionColumns.Add(new DynamicMenuColumn(CreateJobMenu) { Position = DynamicActionColumnPosition.End});
- ColumnsTag = GetType().Name;
- }
- protected override void DoReconfigure(DynamicGridOptions options)
- {
- base.DoReconfigure(options);
- options.SelectColumns = true;
- options.FilterRows = true;
- }
- private string? RebookingIndicator(CoreRow? arg)
- {
- return arg == null
- ? "R"
- : arg.Get<Job, int>(c => c.Assignments) != 0
- ? "R"
- : "";
- }
- public void Refresh()
- {
- Refresh(false, true);
- }
- public void Setup()
- {
- Refresh(true, false);
- }
- public void Shutdown(CancelEventArgs? cancel)
- {
- }
- private void CreateJobMenu(DynamicMenuColumn column, CoreRow? row)
- {
- column.AddItem("Book Now", null, BookJob);
- }
- private void BookJob(CoreRow? row)
- {
- }
- protected override void Reload(
- Filters<Job> criteria, Columns<Job> columns, ref SortOrder<Job>? sort,
- CancellationToken token, Action<CoreTable?, Exception?> action)
- {
- criteria.Add(new Filter<Job>(x => x.JobType).IsEqualTo(JobType.Service).And(x => x.Completed).IsEqualTo(DateTime.MinValue)
- .And(x => x.OpenAssignments).IsEqualTo(0));
- base.Reload(criteria, columns, ref sort, token, action);
- }
- }
- }
|