using System; using System.Collections.Generic; using InABox.Configuration; using InABox.Core; namespace Comal.Classes { // As of v8.20 this has been migrated from an Entity to GlobalConfiguration for 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; } [EnumLookupEditor(typeof(V6ImportDesigns))] [EditorSequence(5)] public V6ImportDesigns ImportDesigns { get; set; } [EnumLookupEditor(typeof(V6ImportCosts))] [EditorSequence(6)] public V6ImportCosts ImportCosts { get; set; } [EditorSequence(7)] [CodeEditor(Visible=Visible.Default, Editable=Editable.Enabled)] public string JobStatus { get; set; } [EditorSequence(8)] [CodeEditor(Visible=Visible.Default, Editable=Editable.Enabled)] public string TaxCode { get; set; } // private abstract class AbstractUomLookupGenerator : LookupGenerator // { // // protected abstract Filter UomFilter(); // // protected AbstractUomLookupGenerator(object[] items) : base(items) // { // var _results = Client.Query( // UomFilter(), // Columns.None() // .Add(x => x.ID) // .Add(x => x.Code) // .Add(x => x.Description) // ).ToObjects(); // foreach (var _result in _results) // AddValue(_result.Code, $"{_result.Code}: {_result.Description}"); // } // } // private class ProfileUomLookupGenerator : AbstractUomLookupGenerator // { // // protected ProfileUomLookupGenerator(object[] items) : base(items) { } // // protected override Filter UomFilter() => // new Filter(x => x.HasLength).IsEqualTo(true); // } //[ComboLookupEditor(typeof(ProfileUomLookupGenerator))] [EditorSequence(9)] [CodeEditor(Visible=Visible.Default, Editable=Editable.Enabled)] public String ProfileUom { get; set; } // private class ComponentUomLookupGenerator : AbstractUomLookupGenerator // { // // protected ComponentUomLookupGenerator(object[] items) : base(items) { } // // protected override Filter UomFilter() => // new Filter(x => x.HasQuantity).IsEqualTo(true); // } //[ComboLookupEditor(typeof(ComponentLookupGenerator))] [CodeEditor(Visible=Visible.Default, Editable=Editable.Enabled)] [EditorSequence(10)] public String ComponentUom { 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))] [CodeEditor(Visible=Visible.Default, Editable=Editable.Enabled)] [EditorSequence(11)] public String GlassUom { get; set; } //[ComboLookupEditor(typeof(GlassUomLookupGenerator))] [CodeEditor(Visible=Visible.Default, Editable=Editable.Enabled)] [EditorSequence(12)] public String PacketTemplate { get; set; } [MemoEditor] [EditorSequence("1. Quote Query", 1)] public String QuoteSQL { get; set; } = V6Quote.SQL; [MemoEditor] [EditorSequence("2. Elevations Query", 1)] public String ElevationSQL { get; set; } = V6Elevation.SQL; [MemoEditor] [EditorSequence("3. Drawings Query", 1)] public String DrawingsSQL { get; set; } = V6Drawings.SQL; [MemoEditor] [EditorSequence("4. Profile Query", 1)] public String ProfileSQL { get; set; } = V6Profile.SQL; [MemoEditor] [EditorSequence("5. Component Query", 1)] public String ComponentSQL { get; set; } = V6Component.SQL; [MemoEditor] [EditorSequence("6. Glass Query", 1)] public String GlassSQL { get; set; } = V6Glass.SQL; [MemoEditor] [EditorSequence("7. Labour Query", 1)] public String LabourSQL { get; set; } = V6Labour.SQL; 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}"; public void CheckSQL() { QuoteSQL = string.IsNullOrWhiteSpace(QuoteSQL) ? V6Quote.SQL : QuoteSQL; ElevationSQL = string.IsNullOrWhiteSpace(ElevationSQL) ? V6Elevation.SQL : ElevationSQL; DrawingsSQL = string.IsNullOrWhiteSpace(DrawingsSQL) ? V6Drawings.SQL : DrawingsSQL; ProfileSQL = string.IsNullOrWhiteSpace(ProfileSQL) ? V6Profile.SQL : ProfileSQL; ComponentSQL = string.IsNullOrWhiteSpace(ComponentSQL) ? V6Component.SQL : ComponentSQL; GlassSQL = string.IsNullOrWhiteSpace(GlassSQL) ? V6Glass.SQL : GlassSQL; LabourSQL = string.IsNullOrWhiteSpace(LabourSQL) ? V6Labour.SQL : LabourSQL; } } }