Esempio n. 1
0
        public TestContextFilter()
        {
            SchemaFilters.AddRange(new List <IFilterType <Schema> >
            {
                // Only include the schemas 'dbo' and 'events'
                new RegexIncludeFilter("^dbo$"),
                new RegexIncludeFilter("^events$")
            });

            TableFilters.AddRange(new List <IFilterType <Table> >
            {
                // Exclude filters
                new RegexExcludeFilter("(.*_FR_.*)|(^data_.*)"), // Exclude all tables that contain '_FR_' or begin with 'data_'
                new RegexExcludeFilter(".*[Bb]illing.*"),        // This excludes all tables with 'billing' anywhere in the name

                // Include filters
                new RegexIncludeFilter("^[Cc]ustomer.*"), // This includes any remaining tables with names beginning with 'customer'
                new RegexIncludeFilter("^Order.*"),       // This includes any remaining tables with names beginning with 'customer'
            });

            ColumnFilters.AddRange(new List <IFilterType <Column> >
            {
                // Exclude any columns that begin with 'FK_'
                new RegexExcludeFilter("^FK_.*$"),
            });
        }
        public OpenApiCompilerConfiguration(OpenApiConfiguration configuration)
        {
            foreach (var documentFilterFactory in configuration.DocumentFilterFactories)
            {
                DocumentFilters.Add(documentFilterFactory());
            }

            foreach (var operationFilterFactory in configuration.OperationFilterFactories)
            {
                OperationFilters.Add(operationFilterFactory());
            }

            foreach (var parameterFilterFactory in configuration.ParameterFilterFactories)
            {
                ParameterFilters.Add(parameterFilterFactory());
            }

            foreach (var schemaFilterFactory in configuration.SchemaFilterFactories)
            {
                SchemaFilters.Add(schemaFilterFactory());
            }

            foreach (var xmlDocFactory in configuration.XmlDocFactories)
            {
                SchemaFilters.Add(new OpenApiXmlCommentsSchemaFilter(xmlDocFactory()));
            }

            SchemaIdSelector = configuration.SchemaIdSelector;
            if (SchemaIdSelector == null)
            {
                SchemaIdSelector = type =>
                {
                    var typeName = type.GetAttributeValue((DataContractAttribute attribute) => attribute.Name) ?? type.FriendlyId();
                    return(typeName.SanitizeClassName());
                };
            }
        }
Esempio n. 3
0
        public OpenApiCompilerConfiguration(OpenApiConfiguration configuration)
        {
            foreach (var documentFilterFactory in configuration.DocumentFilterFactories)
            {
                DocumentFilters.Add(documentFilterFactory());
            }

            foreach (var reDocDocumentFilterFactory in configuration.ReDocDocumentFilterFactories)
            {
                ReDocDocumentFilters.Add(reDocDocumentFilterFactory());
            }

            foreach (var injectedExtensions in configuration.InjectedExtensions)
            {
                DocumentFilters.Add(new OpenApiExtensionInjectingDocumentFilter(injectedExtensions.resourceAssembly, injectedExtensions.resourceName, injectedExtensions.documentRoute));
            }

            foreach (var reDocInjectedExtensions in configuration.ReDocInjectedExtensions)
            {
                ReDocDocumentFilters.Add(new OpenApiExtensionInjectingDocumentFilter(reDocInjectedExtensions.resourceAssembly, reDocInjectedExtensions.resourceName, reDocInjectedExtensions.documentRoute));
            }

            foreach (var injectedTags in configuration.InjectedTags)
            {
                DocumentFilters.Add(new OpenApiTagInjectingDocumentFilter(injectedTags.resourceAssembly, injectedTags.resourceName, injectedTags.documentRoute));
            }

            foreach (var reDocInjectedTags in configuration.ReDocInjectedTags)
            {
                ReDocDocumentFilters.Add(new OpenApiTagInjectingDocumentFilter(reDocInjectedTags.resourceAssembly, reDocInjectedTags.resourceName, reDocInjectedTags.documentRoute));
            }

            foreach (var operationFilterFactory in configuration.OperationFilterFactories)
            {
                OperationFilters.Add(operationFilterFactory());
            }

            foreach (var parameterFilterFactory in configuration.ParameterFilterFactories)
            {
                ParameterFilters.Add(parameterFilterFactory());
            }

            foreach (var schemaFilterFactory in configuration.SchemaFilterFactories)
            {
                SchemaFilters.Add(schemaFilterFactory());
            }

            foreach (var xmlDocFactory in configuration.XmlDocFactories)
            {
                SchemaFilters.Add(new OpenApiXmlCommentsSchemaFilter(xmlDocFactory()));
            }

            SchemaIdSelector = configuration.SchemaIdSelector;
            if (SchemaIdSelector == null)
            {
                SchemaIdSelector = type =>
                {
                    var typeName = type.GetAttributeValue((DataContractAttribute attribute) => attribute.Name) ?? type.FriendlyId();
                    return(typeName.SanitizeClassName());
                };
            }
        }