using System; using InABox.Configuration; using InABox.Core; namespace Comal.Classes { public enum V6ProjectType { None, Quote, Project } public enum V6CostType { None, BOM, Requisition } public enum V6DesignType { None, Approved, NotApproved } 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; } [EnumLookupEditor(typeof(V6CostType))] [EditorSequence(6)] [Caption("Import Costs")] public V6CostType ImportCosts { get; set; } [EnumLookupEditor(typeof(V6DesignType))] [EditorSequence(7)] [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(12)] public String PacketTemplate { get; set; } [MemoEditor] [EditorSequence("1. Quotes", 1)] public String QuoteSQL { get; set; }// = V6Quote.SQL; [MemoEditor] [EditorSequence("2. Elevations", 1)] public String ElevationSQL { get; set; }// = V6Elevation.SQL; [MemoEditor] [EditorSequence("3. Drawings", 1)] public String DrawingsSQL { get; set; }// = V6Drawings.SQL; [MemoEditor] [EditorSequence("4. Finishes", 1)] public String FinishSQL { get; set; }// = V6Profile.SQL; 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("5. Profiles", 1)] [Caption("Unit")] [LookupDefinition(typeof(ProfileUomLookup))] public ProductDimensionUnitLink ProfileUom { get; set; } [MemoEditor] [EditorSequence("5. Profiles", 2)] public String ProfileSQL { 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("6. Gaskets", 1)] [LookupDefinition(typeof(GasketUomLookup))] public ProductDimensionUnitLink GasketUom { get; set; } [MemoEditor] [EditorSequence("6. Gaskets", 2)] 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("7. Components", 1)] [LookupDefinition(typeof(ComponentUomLookup))] [Caption("Unit")] public ProductDimensionUnitLink ComponentUom { get; set; } [MemoEditor] [EditorSequence("7. Components", 2)] 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("8. Glass", 1)] [LookupDefinition(typeof(GlassUomLookup))] public ProductDimensionUnitLink GlassUom { get; set; } [MemoEditor] [EditorSequence("8. Glass", 2)] public String GlassSQL { get; set; }// = V6Glass.SQL; [MemoEditor] [EditorSequence("9. Labour", 1)] public String LabourSQL { get; set; }// = V6Labour.SQL; } }