12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using InABox.Core;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Comal.Classes
- {
- public class ProductTreatment : Entity, IManyToMany<Product, TreatmentType>, IRemotable, IPersistent, ILicense<ProductManagementLicense>
- {
- [NullEditor]
- public ProductLink Product { get; set; }
- private class TreatmentTypeLookup : LookupDefinitionGenerator<TreatmentType, ProductTreatment>
- {
- public override Filter<TreatmentType>? DefineFilter(ProductTreatment[] items)
- {
- if (items.Length != 1) return Filter.None<TreatmentType>();
- var item = items[0];
- var productID = item.Product.ID;
- var currentTreatment = item.TreatmentType.ID;
- return new Filter<TreatmentType>(x => x.ID)
- .NotInQuery(new Filter<ProductTreatment>(x => x.Product.ID).IsEqualTo(productID), x => x.TreatmentType.ID)
- .Or(x => x.ID).IsEqualTo(currentTreatment);
- }
- public override Columns<ProductTreatment> DefineFilterColumns()
- {
- return Columns.None<ProductTreatment>().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; }
- }
- }
|