using System; using InABox.Configuration; using InABox.Core; namespace Comal.Classes { public enum LogikalProjectType { None, Quote, Project } public enum LogikalCostType { None, BOM, Requisition } public enum LogikalDesignType { None, Approved, NotApproved } public class LogikalSettings : BaseObject, IGlobalConfigurationSettings { [FileNameEditor] [EditorSequence(1)] public string Path { get; set; } [TextBoxEditor] [EditorSequence(2)] public string UserID { get; set; } [PasswordEditor] [EditorSequence(3)] public string Password { get; set; } [EnumLookupEditor(typeof(LogikalProjectType))] [EditorSequence(4)] [Caption("Import Projects")] public LogikalProjectType ImportProjects { get; set; } [EnumLookupEditor(typeof(LogikalCostType))] [EditorSequence(5)] [Caption("Import Costs")] public LogikalCostType ImportCosts { get; set; } [EnumLookupEditor(typeof(LogikalDesignType))] [EditorSequence(7)] [Caption("Import Designs")] public LogikalDesignType ImportDesigns { get; set; } [MemoEditor] [EditorSequence("1. Finishes", 1)] [Caption("Finishes")] public String FinishSQL { get; set; } private class ProfileUomLookup : LookupDefinitionGenerator { public override Filter DefineFilter(LogikalSettings[] items) { return new Filter(x => x.HasLength).IsEqualTo(true) .And(x=>x.HasWidth).IsEqualTo(false) .And(x=>x.HasHeight).IsEqualTo(false) .And(x=>x.HasQuantity).IsEqualTo(false); } } [EditorSequence("2. Profiles", 1)] [Caption("Unit")] [LookupDefinition(typeof(ProfileUomLookup))] public ProductDimensionUnitLink ProfileUom { get; set; } [MemoEditor] [EditorSequence("2. Profiles", 2)] [Caption("BOM")] public String BillOfMaterialsProfileSQL { get; set; } [MemoEditor] [EditorSequence("2. Profiles", 3)] [Caption("Designs")] public String DesignProfileSQL { get; set; } private class GasketUomLookup : LookupDefinitionGenerator { public override Filter DefineFilter(LogikalSettings[] items) { return new Filter(x => x.HasLength).IsEqualTo(true) .And(x=>x.HasWidth).IsEqualTo(false) .And(x=>x.HasHeight).IsEqualTo(false) .And(x=>x.HasQuantity).IsEqualTo(false); } } [EditorSequence("3. Gaskets", 1)] [LookupDefinition(typeof(GasketUomLookup))] public ProductDimensionUnitLink GasketUom { get; set; } [MemoEditor] [EditorSequence("3. Gaskets", 2)] [Caption("BOM")] public string BillOfMaterialsGasketSQL { get; set; } [MemoEditor] [EditorSequence("3. Gaskets", 3)] [Caption("Designs")] public string DesignGasketSQL { get; set; } private class ComponentUomLookup : LookupDefinitionGenerator { public override Filter DefineFilter(LogikalSettings[] items) { return new Filter(x=>x.HasQuantity).IsEqualTo(true) .And(x => x.HasLength).IsEqualTo(false) .And(x=>x.HasWidth).IsEqualTo(false) .And(x=>x.HasHeight).IsEqualTo(false); } } [EditorSequence("4. Components", 1)] [LookupDefinition(typeof(ComponentUomLookup))] [Caption("Unit")] public ProductDimensionUnitLink ComponentUom { get; set; } [MemoEditor] [EditorSequence("4. Components", 2)] [Caption("BOM")] public String BillOfMaterialsComponentSQL { get; set; } [MemoEditor] [EditorSequence("4. Components", 3)] [Caption("Designs")] public String DesignComponentSQL { get; set; } private class GlassUomLookup : LookupDefinitionGenerator { public override Filter DefineFilter(LogikalSettings[] items) { return new Filter(x=>x.HasWidth).IsEqualTo(true) .And(x=>x.HasHeight).IsEqualTo(true) .And(x => x.HasLength).IsEqualTo(false) .And(x=>x.HasQuantity).IsEqualTo(false); } } [EditorSequence("5. Glass", 1)] [LookupDefinition(typeof(GlassUomLookup))] public ProductDimensionUnitLink GlassUom { get; set; } [MemoEditor] [EditorSequence("5. Glass", 2)] [Caption("BOM")] public String BillOfMaterialsGlassSQL { get; set; } [MemoEditor] [EditorSequence("5. Glass", 3)] [Caption("Designs")] public String DesignGlassSQL { get; set; } [MemoEditor] [EditorSequence("6. Labour", 1)] [Caption("BOM")] public String BillOfMaterialsLabourSQL { get; set; } [MemoEditor] [EditorSequence("6. Labour", 2)] [Caption("Designs")] public String DesignLabourSQL { get; set; } } }