using System; using System.Linq; using System.Windows; using Comal.Classes; using InABox.Clients; using InABox.Core; using InABox.DynamicGrid; namespace PRSDesktop { public class JobTrackerGrid : DynamicManyToManyDataGrid, IJobControl, IDataModelSource { public event DataModelUpdateEvent OnUpdateDataModel; public string SectionName => "Job Trackers"; public DataModel DataModel(Selection selection) { var ids = ExtractValues(x => x.ID, selection).ToArray(); return new BaseDataModel(new Filter(x => x.ID).InList(ids)); } public Guid ParentID { get => ID; set => ID = value; } public JobPanelSettings Settings { get; set; } protected override void DoAdd(bool OpenEditorOnDirectEdit = false) { if (ParentID.Equals(Guid.Empty) || ParentID.Equals(CoreUtils.FullGuid)) MessageBox.Show("Please select a Job first!"); else base.DoAdd(); } protected override JobTracker CreateItem() { var result = base.CreateItem(); result.JobLink.ID = ParentID; return result; } protected override void Reload(Filters criteria, Columns columns, ref SortOrder sort, Action action) { criteria.Add(new Filter(x => x.JobLink.ID).IsEqualTo(ParentID)); base.Reload(criteria, columns, ref sort, action); } protected override void DeleteItems(params CoreRow[] rows) { var items = LoadItems(rows); foreach (var item in items) new Client().Delete(item, ""); } public override void SaveItem(JobTracker item) { new Client().Save(item, ""); base.SaveItem(item); } } }