コード例 #1
0
ファイル: ViewRenderer.cs プロジェクト: fagan2888/Schematic
        public ViewRenderer(
            IIdentifierDefaults identifierDefaults,
            IHtmlFormatter formatter,
            IReadOnlyCollection <IDatabaseView> views,
            ReferencedObjectTargets referencedObjectTargets,
            DirectoryInfo exportDirectory
            )
        {
            if (views == null || views.AnyNull())
            {
                throw new ArgumentNullException(nameof(views));
            }

            Views = views;

            IdentifierDefaults      = identifierDefaults ?? throw new ArgumentNullException(nameof(identifierDefaults));
            Formatter               = formatter ?? throw new ArgumentNullException(nameof(formatter));
            ReferencedObjectTargets = referencedObjectTargets ?? throw new ArgumentNullException(nameof(referencedObjectTargets));

            if (exportDirectory == null)
            {
                throw new ArgumentNullException(nameof(exportDirectory));
            }

            ExportDirectory = new DirectoryInfo(Path.Combine(exportDirectory.FullName, "views"));
        }
コード例 #2
0
        private IEnumerable <ITemplateRenderer> GetRenderers(
            IReadOnlyCollection <IRelationalDatabaseTable> tables,
            IReadOnlyCollection <IDatabaseView> views,
            IReadOnlyCollection <IDatabaseSequence> sequences,
            IReadOnlyCollection <IDatabaseSynonym> synonyms,
            IReadOnlyCollection <IDatabaseRoutine> routines,
            IReadOnlyDictionary <Identifier, ulong> rowCounts,
            string databaseVersion
            )
        {
            if (tables == null || tables.AnyNull())
            {
                throw new ArgumentNullException(nameof(tables));
            }
            if (views == null || views.AnyNull())
            {
                throw new ArgumentNullException(nameof(views));
            }
            if (sequences == null || sequences.AnyNull())
            {
                throw new ArgumentNullException(nameof(sequences));
            }
            if (synonyms == null || synonyms.AnyNull())
            {
                throw new ArgumentNullException(nameof(synonyms));
            }
            if (routines == null || routines.AnyNull())
            {
                throw new ArgumentNullException(nameof(routines));
            }
            if (rowCounts == null)
            {
                throw new ArgumentNullException(nameof(rowCounts));
            }

            var ruleProvider   = new ReportingRuleProvider();
            var rules          = ruleProvider.GetRules(Connection, RuleLevel.Warning);
            var linter         = new RelationalDatabaseLinter(rules);
            var synonymTargets = new SynonymTargets(tables, views, sequences, synonyms, routines);

            var dependencyProvider      = Connection.Dialect.GetDependencyProvider();
            var referencedObjectTargets = new ReferencedObjectTargets(dependencyProvider, tables, views, sequences, synonyms, routines);

            return(new ITemplateRenderer[]
            {
                new ColumnsRenderer(Database.IdentifierDefaults, TemplateFormatter, tables, views, ExportDirectory),
                new ConstraintsRenderer(Database.IdentifierDefaults, TemplateFormatter, tables, ExportDirectory),
                new IndexesRenderer(Database.IdentifierDefaults, TemplateFormatter, tables, ExportDirectory),
                new LintRenderer(linter, Database.IdentifierDefaults, TemplateFormatter, tables, views, sequences, synonyms, routines, ExportDirectory),
                new MainRenderer(Database, TemplateFormatter, tables, views, sequences, synonyms, routines, rowCounts, databaseVersion, ExportDirectory),
                new OrphansRenderer(Database.IdentifierDefaults, TemplateFormatter, tables, rowCounts, ExportDirectory),
                new RelationshipsRenderer(Database.IdentifierDefaults, TemplateFormatter, tables, rowCounts, ExportDirectory),
                new TableRenderer(Database.IdentifierDefaults, TemplateFormatter, tables, rowCounts, ExportDirectory),
                new TriggerRenderer(TemplateFormatter, tables, ExportDirectory),
                new ViewRenderer(Database.IdentifierDefaults, TemplateFormatter, views, referencedObjectTargets, ExportDirectory),
                new SequenceRenderer(Database.IdentifierDefaults, TemplateFormatter, sequences, ExportDirectory),
                new SynonymRenderer(Database.IdentifierDefaults, TemplateFormatter, synonyms, synonymTargets, ExportDirectory),
                new RoutineRenderer(Database.IdentifierDefaults, TemplateFormatter, routines, ExportDirectory),
                new TablesRenderer(Database.IdentifierDefaults, TemplateFormatter, tables, rowCounts, ExportDirectory),
                new TriggersRenderer(Database.IdentifierDefaults, TemplateFormatter, tables, ExportDirectory),
                new ViewsRenderer(Database.IdentifierDefaults, TemplateFormatter, views, ExportDirectory),
                new SequencesRenderer(Database.IdentifierDefaults, TemplateFormatter, sequences, ExportDirectory),
                new SynonymsRenderer(Database.IdentifierDefaults, TemplateFormatter, synonyms, synonymTargets, ExportDirectory),
                new RoutinesRenderer(Database.IdentifierDefaults, TemplateFormatter, routines, ExportDirectory),
                new TableOrderingRenderer(Connection.Dialect, tables, ExportDirectory),
                new DbmlRenderer(tables, ExportDirectory)
            });
        }