using System; using System.Linq; using Comal.Classes; using InABox.Core; using InABox.DynamicGrid; namespace PRSDesktop { public class QuoteContractProposalGrid : DynamicManyToManyDataGrid { public QuoteContractProposalGrid() { Options.AddRange(DynamicGridOption.RecordCount, DynamicGridOption.SelectColumns); HiddenColumns.Add(x => x.Contract.ID); HiddenColumns.Add(x => x.Contract.Quote.ID); } public Guid ContractID { get => ID; set { ID = value; Refresh(false, true); } } public Guid QuoteID { get; set; } protected override void Reload(Filters criteria, Columns columns, ref SortOrder sort, Action action) { criteria.Add(new Filter(x => x.Contract.ID).IsEqualTo(ContractID)); base.Reload(criteria, columns, ref sort, action); } protected override QuoteContractProposal CreateItem() { var result = base.CreateItem(); result.Contract.ID = ContractID; result.Contract.Quote.ID = QuoteID; return result; } protected override object GetFilter() { var result = new Filter(x => x.Quote.ID).IsEqualTo(QuoteID); var guids = CurrentGuids(); if (guids.Any()) result = result.And(x => x.ID).NotInList(guids); return result; } } }