using InABox.Core; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Comal.Classes { public class ProductTreatment : Entity, IManyToMany, IRemotable, IPersistent, ILicense { [NullEditor] public ProductLink Product { get; set; } private class TreatmentTypeLookup : LookupDefinitionGenerator { public override Filter? DefineFilter(ProductTreatment[] items) { if (items.Length != 1) return Filter.None(); var item = items[0]; var productID = item.Product.ID; var currentTreatment = item.TreatmentType.ID; return new Filter(x => x.ID) .NotInQuery(new Filter(x => x.Product.ID).IsEqualTo(productID), x => x.TreatmentType.ID) .Or(x => x.ID).IsEqualTo(currentTreatment); } public override Columns DefineFilterColumns() { return Columns.None().Add(x => x.Product.ID).Add(x => x.TreatmentType.ID); } } [EditorSequence(1)] [LookupDefinition(typeof(TreatmentTypeLookup))] public TreatmentTypeLink TreatmentType { get; set; } [EditorSequence(2)] [DoubleEditor] public double Parameter { get; set; } } }