Ejemplo n.º 1
0
 public SqlGenerator(IMatrixConfiguration configuration)
 {
     _configuration = configuration;
     _columns       = new List <IFieldPath>();
     _groupBy       = new List <IFieldPath>();
     _orderBy       = new List <OrderedField>();
     AliasColumns   = true;
 }
Ejemplo n.º 2
0
 public SqlGenerator(IMatrixConfiguration configuration)
     : base(configuration)
 {
 }
Ejemplo n.º 3
0
 public SQLiteService(IMatrixConfiguration configuration, string connectionString)
     : base(configuration, connectionString)
 {
 }
Ejemplo n.º 4
0
 public ConfigurationValidation(IMatrixConfiguration config, DbConnection conn)
 {
     _configuration = config;
     _conn          = conn;
 }
Ejemplo n.º 5
0
 public SqlService(IMatrixConfiguration configuration, string connectionString)
 {
     _config           = configuration;
     _connectionString = connectionString;
 }
Ejemplo n.º 6
0
        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());
        }
Ejemplo n.º 7
0
 public MsAccessService(IMatrixConfiguration configuration, string connectionString)
     : base(configuration, connectionString)
 {
 }
Ejemplo n.º 8
0
 public DbServiceFactory(IMatrixConfiguration configuration, int commandTimeout)
 {
     _configuration  = configuration;
     _commandTimeout = commandTimeout;
 }
Ejemplo n.º 9
0
 public DbServiceFactory(IMatrixConfiguration configuration)
     : this(configuration, 30)
 {
 }
Ejemplo n.º 10
0
 public SqlListGenerator(IMatrixConfiguration configuration)
 {
     _configuration = configuration;
 }