public OpenApiMetadataPathsFactory( IOpenApiMetadataPathsFactorySelectorStrategy openApiMetadataPathsFactorySelectorStrategy, IOpenApiMetadataPathsFactoryContentTypeStrategy contentTypeStrategy, IOpenApiMetadataPathsFactoryNamingStrategy pathsFactoryNamingStrategy, ApiSettings apiSettings) { _openApiMetadataPathsFactorySelectorStrategy = openApiMetadataPathsFactorySelectorStrategy; _contentTypeStrategy = contentTypeStrategy; _pathsFactoryNamingStrategy = pathsFactoryNamingStrategy; _apiSettings = apiSettings; }
public static OpenApiMetadataPathsFactory CreateOpenApiMetadataPathsFactory( OpenApiMetadataDocumentContext openApiMetadataDocumentContext, ApiSettings apiSettings) { if (openApiMetadataDocumentContext.IsProfileContext) { var profileStrategy = new OpenApiMetadataPathsFactoryProfileStrategy(openApiMetadataDocumentContext); //Profile strategy implements each of the interfaces in the signature of the paths factory constructor //Hence the odd parameter repetition. return(new OpenApiMetadataPathsFactory(profileStrategy, profileStrategy, profileStrategy, apiSettings)); } IOpenApiMetadataPathsFactorySelectorStrategy selectorStrategy = null; IOpenApiMetadataPathsFactoryNamingStrategy resourceNamingStrategy = null; if (openApiMetadataDocumentContext.RenderType == RenderType.ExtensionArtifactsOnly) { selectorStrategy = new OpenApiMetadataPathsFactorySchemaSelectorStrategy(openApiMetadataDocumentContext); } if (openApiMetadataDocumentContext.IsCompositeContext) { selectorStrategy = new OpenApiMetadataCompositePathsFactoryStrategy(openApiMetadataDocumentContext); resourceNamingStrategy = new OpenApiMetadataPathsFactoryCompositeStrategy(); } var defaultStrategy = new DefaultOpenApiMetadataPathsFactoryStrategy(); var defaultResourceDefinitionNamingStrategy = new OpenApiMetadataPathsFactoryDefaultStrategy(); IOpenApiMetadataPathsFactoryContentTypeStrategy contentTypeStrategy = defaultStrategy; selectorStrategy = selectorStrategy ?? defaultStrategy; resourceNamingStrategy = resourceNamingStrategy ?? defaultResourceDefinitionNamingStrategy; return(new OpenApiMetadataPathsFactory(selectorStrategy, contentTypeStrategy, resourceNamingStrategy, apiSettings)); }