using System; using InABox.Configuration; using InABox.Core; namespace Comal.Classes { public enum V6ProjectType { None, Quote, Project } public enum V6DesignType { None, Approved, NotApproved } public enum V6Measurement { Millimetres, Metres, Inches } public class V6Settings : BaseObject, IGlobalConfigurationSettings { [TextBoxEditor] [EditorSequence(1)] public string Server { get; set; } [TextBoxEditor] [EditorSequence(2)] public string Database { get; set; } [TextBoxEditor] [EditorSequence(3)] public string UserID { get; set; } [PasswordEditor] [EditorSequence(4)] public string Password { get; set; } public string AsConnectionString() => String.IsNullOrWhiteSpace(UserID) && String.IsNullOrWhiteSpace(Password) ? $"server={Server};database={Database};integrated security=SSPI;" : $"server={Server};database={Database};integrated security=false;user id={UserID};password={Password}"; [EnumLookupEditor(typeof(V6ProjectType))] [EditorSequence(5)] [Caption("Import Projects")] public V6ProjectType ImportProjects { get; set; } [CheckBoxEditor] [EditorSequence(6)] public bool UseV6QuoteNumber { get; set; } [CheckBoxEditor] [EditorSequence(7)] [Caption("Import BOMs")] public bool ImportBoms { get; set; } [CheckBoxEditor] [EditorSequence(8)] [Caption("Import Requis")] public bool ImportRequis { get; set; } [EnumLookupEditor(typeof(V6DesignType))] [EditorSequence(9)] [Caption("Import Designs")] public V6DesignType ImportDesigns { get; set; } // private class GlassUomLookupGenerator : AbstractUomLookupGenerator // { // // protected GlassUomLookupGenerator(object[] items) : base(items) { } // // protected override Filter UomFilter() => // new Filter(x => x.HasHeight).IsEqualTo(true).And(x=>x.HasWidth).IsEqualTo(true); // } //[ComboLookupEditor(typeof(GlassUomLookupGenerator))] //[ComboLookupEditor(typeof(GlassUomLookupGenerator))] [CodeEditor(Visible=Visible.Default, Editable=Editable.Enabled)] [EditorSequence(10)] public String PacketTemplate { 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("1. Profiles", 1)] [Caption("Unit")] [LookupDefinition(typeof(ProfileUomLookup))] public ProductDimensionUnitLink ProfileUom { get; set; } [EditorSequence("1. Profiles", 2)] [EnumLookupEditor(typeof(V6Measurement))] [Caption("Scale")] public V6Measurement ProfileMeasurement { get; set; } [MemoEditor(Height=200)] [EditorSequence("1. Profiles", 3)] [Caption("BOM")] public String BOMProfilesSQL { get; set; }// = V6Profile.SQL; [MemoEditor(Height=200)] [EditorSequence("1. Profiles", 4)] [Caption("Design")] public String DesignProfilesSQL { get; set; }// = V6Profile.SQL; 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("2. Gaskets", 1)] [LookupDefinition(typeof(GasketUomLookup))] [Caption("Unit")] public ProductDimensionUnitLink GasketUom { get; set; } [EditorSequence("2. Gaskets", 2)] [EnumLookupEditor(typeof(V6Measurement))] [Caption("Scale")] public V6Measurement GasketMeasurement { get; set; } [MemoEditor] [EditorSequence("2. Gaskets", 3)] [Caption("Query")] public string GasketSQL { 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("3. Components", 1)] [LookupDefinition(typeof(ComponentUomLookup))] [Caption("Unit")] public ProductDimensionUnitLink ComponentUom { get; set; } [MemoEditor] [EditorSequence("3. Components", 2)] [Caption("Query")] public String ComponentSQL { get; set; }// = V6Component.SQL; private class GlassUomLookup : LookupDefinitionGenerator { public override Filter DefineFilter(LogikalSettings[] items) { return new Filter(x=>x.HasHeight).IsEqualTo(true) .And(x=>x.HasWidth).IsEqualTo(true) .And(x => x.HasLength).IsEqualTo(false) .And(x=>x.HasQuantity).IsEqualTo(false); } } [EditorSequence("4. Glass", 1)] [LookupDefinition(typeof(GlassUomLookup))] [Caption("Unit")] public ProductDimensionUnitLink GlassUom { get; set; } [EditorSequence("4. Glass", 2)] [EnumLookupEditor(typeof(V6Measurement))] [Caption("Scale")] public V6Measurement GlassMeasurement { get; set; } [MemoEditor] [EditorSequence("4. Glass", 2)] [Caption("Query")] public String GlassSQL { get; set; }// = V6Glass.SQL; [MemoEditor] [EditorSequence("5. Labour", 1)] [Caption("Query")] public String LabourSQL { get; set; }// = V6Labour.SQL; } }