예제 #1
0
        public void SetMany <F>(IncludeTables <F, T> include, List <F> listMany) where F : class
        {
            FilterMayny <T, F> filterByMany = new FilterMayny <T, F>(include);

            filterByMany.SetListSecondTables(listMany);

            listFilters.Add(filterByMany);
        }
예제 #2
0
        public string Configure(string sqlTemplate, string database, string schema, string stagingDatabase)
        {
            var output = sqlTemplate.Replace("__DatabaseName__", database)
                         .Replace("__SchemaName__", schema)
                         .Replace("__TableNamePrefix__", TablePrefix)
                         .Replace("__ExcludeTables__", string.Join(",",
                                                                   ExcludeTables.Where(t => t.Database.Equals(database) && t.Schema.Equals(schema)).Select(t => t.Name)))
                         .Replace("__IncludeTables__", string.Join(",",
                                                                   IncludeTables.Where(t => t.Database.Equals(database) && t.Schema.Equals(schema)).Select(t => t.Name)))
                         .Replace("__StagingDatabaseName__", stagingDatabase);

            return(output);
        }
예제 #3
0
 public override string ToString()
 {
     return(string.Format("Name: {0}\n\tGenerateCreateTable: {1}\n\tFilters\n\t\tDefaultSchema: {2}\n\t\tDefaultDatabase: {3}\n\tTablePrefix: {4}\n\tExcludeTables:\t{5}\n\tIncludeTables:\t{6}",
                          Name, GenerateCreateTable, DefaultSchema, DefaultDatabase, TablePrefix, string.Join("\n\t\t\t", ExcludeTables.Select(t => t)), string.Join("\n\t\t\t", IncludeTables.Select(t => t))));
 }
예제 #4
0
 public RelatedTableCommand(IncludeTables <T, A> relMethod, SearchTableFromContext <T> request, List <T> SecondTablesList)
 {
     this.relMethod        = relMethod;
     this.SecondTablesList = SecondTablesList;
     this.request          = request;
 }
        public Results Generate(SchemaModel model)
        {
            _model = model;

            var flattener = new ModelFlattener();

            model.Accept(flattener);

            _tables     = flattener.Tables;
            _classes    = flattener.Classes;
            _procedures = flattener.Procedures;
            _namespaces = flattener.Namespaces;

            foreach (var t in _tables)
            {
                t.TableName = SetCasing(t.TableName);
                t.Name      = SetCasing(t.Name);

                var className = RemoveSuffix(SetCasing(t.DataObjectClassName ?? t.TableName), "_t");

                var propName = SetCasing(t.DataContextPropertyName ?? className);

                if (PluralizeDataContextPropertyNames || SingularizeDataContextPropertyNames)
                {
                    var newName = PluralizeDataContextPropertyNames ? ToPlural(propName) : ToSingular(propName);

                    t.DataContextPropertyName = newName;
                }
                else
                {
                    t.DataContextPropertyName = SetCasing(propName);
                }

                if (PluralizeClassNames || SingularizeClassNames)
                {
                    className = PluralizeClassNames ? ToPlural(className) : ToSingular(className);
                }

                t.DataObjectClassName = className;
                if (DataObjectSuffix != null)
                {
                    t.DataObjectClassName += DataObjectSuffix;
                }

                className = SetCasing(RemoveSuffix(t.PocoClassName ?? t.TableName, "_t"));

                t.PocoClassName = className;
                if (!PocoSuffix.IsNullOrEmpty())
                {
                    t.PocoClassName += PocoSuffix;
                }
            }

            if (AdapterNamespace.IsNullOrEmpty())
            {
                AdapterNamespace = DataNamespace;
            }

            DataContextName = DataContextName?.Trim();

            _results = new Results();

            if (string.IsNullOrEmpty(DataContextName))
            {
                DataContextName = "DataContext";
            }

            var allTables = (from t in _tables orderby t.TableName select t).ToList();

            _targetTables = allTables;

            if (IncludeTables != null &&
                IncludeTables.Count > 0)
            {
                _targetTables = allTables.Where(t => IncludeTables.Contains(t.OriginalTableName)).ToList();
            }

            if (!IncludeTablePattern.IsNullOrEmpty())
            {
                if (_targetTables == null)
                {
                    _targetTables = new List <Table>();
                }

                _includeTableMatcher = new Regex(IncludeTablePattern,
                                                 RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);

                foreach (var table in allTables)
                {
                    if (_includeTableMatcher.IsMatch(table.OriginalTableName) &&
                        !_targetTables.Contains(table))
                    {
                        _targetTables.Add(table);
                    }
                }
            }

            if (GeneratePocos || GenerateAdapters)
            {
                BuildPocoModel();
            }

            if (GenerateDataObjects)
            {
                GenerateDataObjectModels();
            }

            return(_results);
        }
예제 #6
0
 public FilterMayny(IncludeTables <A, T> bindingTables) : base()
 {
     this.bindingTables = bindingTables;
 }