public SqlGenerator(IMatrixConfiguration configuration) { _configuration = configuration; _columns = new List <IFieldPath>(); _groupBy = new List <IFieldPath>(); _orderBy = new List <OrderedField>(); AliasColumns = true; }
public SqlGenerator(IMatrixConfiguration configuration) : base(configuration) { }
public SQLiteService(IMatrixConfiguration configuration, string connectionString) : base(configuration, connectionString) { }
public ConfigurationValidation(IMatrixConfiguration config, DbConnection conn) { _configuration = config; _conn = conn; }
public SqlService(IMatrixConfiguration configuration, string connectionString) { _config = configuration; _connectionString = connectionString; }
public string Generate(IMatrixConfiguration configuration, string namespaceName, string className) { // I could use T4, but that requires time spent learning it which I'm short on at the moment var sb = new StringBuilder(String.Format(@" using dbqf.Configuration; namespace {0} {{ public class {1} : ConfigurationImpl {{ public {1}() : base() {{ this ", namespaceName, className)); // sanitise subject/field names var names = new Dictionary <ISubject, SubjectName>(); // add constructor body foreach (var subject in configuration) { names.Add(subject, new SubjectName(subject)); sb.AppendLine(String.Format(" .Subject({0})", names[subject].Name)); } for (int i = 0; i < configuration.Count; i++) { for (int j = 0; j < configuration.Count; j++) { var node = configuration[(ISqlSubject)configuration[i], (ISqlSubject)configuration[j]]; if (!String.IsNullOrWhiteSpace(node.Query)) { sb.AppendLine(String.Format(" .Matrix({0}, {1}, @{2}, @{3})", names[configuration[i]].Name, names[configuration[j]].Name, Quote(node.Query), Quote(node.ToolTip))); } } } sb.AppendLine(@" ; } "); // add subject properties foreach (ISqlSubject subject in configuration) { sb.AppendLine(String.Format(@" private ISqlSubject {0}; public ISqlSubject {1} {{ get {{ if ({0} == null) {{ {0} = new SqlSubject({2}) .SqlQuery(@{3}) .{4};", names[subject].MemberName, names[subject].Name, Quote(subject.DisplayName), Quote(subject.Sql), FieldText(subject.IdField, names) // we need to set this up before continuing with the remaining fields as RelationFields reference the related subject IdField for DataType )); sb.AppendLine(String.Format(@" {0}", names[subject].MemberName)); // fill in the fields (ID field is already taken care of) foreach (var field in subject) { if (field != subject.IdField) { sb.AppendLine(String.Concat(@" .", FieldText(field, names))); } } sb.AppendLine(String.Format(@" ;}} return {0}; }} }} ", String.Concat("_", names[subject].Name.ToLower()))); } // end of file sb.AppendLine(@" } }"); return(sb.ToString()); }
public MsAccessService(IMatrixConfiguration configuration, string connectionString) : base(configuration, connectionString) { }
public DbServiceFactory(IMatrixConfiguration configuration, int commandTimeout) { _configuration = configuration; _commandTimeout = commandTimeout; }
public DbServiceFactory(IMatrixConfiguration configuration) : this(configuration, 30) { }
public SqlListGenerator(IMatrixConfiguration configuration) { _configuration = configuration; }