| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | using System;using System.Collections.Generic;using System.Linq;using System.Windows;using Comal.Classes;using InABox.Core;using InABox.DynamicGrid;namespace PRSDesktop{    internal class JobFinancialGrid : DynamicDataGrid<JobFinancial>, IJobControl, IDataModelSource    {        public JobFinancialGrid()        {            Options.AddRange(DynamicGridOption.RecordCount, DynamicGridOption.SelectColumns, DynamicGridOption.FilterRows);        }        public event DataModelUpdateEvent OnUpdateDataModel;        public string SectionName => "Job Financials";        public DataModel DataModel(Selection selection)        {            var ids = ExtractValues(x => x.ID, selection).ToArray();            return new BaseDataModel<JobFinancial>(new Filter<JobFinancial>(x => x.ID).InList(ids));        }        public Guid JobID { get; set; }        protected override void DoAdd()        {            if (JobID.Equals(Guid.Empty) || JobID.Equals(CoreUtils.FullGuid))                MessageBox.Show("Please select a Job first!");            else                base.DoAdd();        }        protected override JobFinancial CreateItem()        {            var result = base.CreateItem();            result.Job.ID = JobID;            result.Type = Data.Rows.Any() ? JobFinancialType.Variation : JobFinancialType.Contract;            return result;        }        protected override void Reload(Filters<JobFinancial> criteria, Columns<JobFinancial> columns, ref SortOrder<JobFinancial> sort,            Action<CoreTable, Exception> action)        {            criteria.Add(new Filter<JobFinancial>(x => x.Job.ID).IsEqualTo(JobID));            base.Reload(criteria, columns, ref sort, action);        }        public Dictionary<string, object[]> Selected()        {            return new Dictionary<string, object[]>();        }    }}
 |