Ejemplo n.º 1
0
        public void ConfigureOpenApiMetadataRoutes(HttpConfiguration config, bool useSchoolYear)
        {
            Preconditions.ThrowIfNull(config, nameof(config));

            var schemas = _schemaNameMapProvider.GetSchemaNameMaps()
                          .Select(x => x.UriSegment.ToLowerInvariant())
                          .ToList();

            string schemaNameConstraints = string.Join("|", schemas);

            var    schoolYearConstraint    = RouteConfigurationHelper.CreateSchoolYearConstraint(useSchoolYear);
            var    resourceTypesConstraint = RouteConfigurationHelper.CreateResourceTypesConstraints(useSchoolYear);
            var    apiDefaults             = RouteConfigurationHelper.CreateOpenApiMetadataDefaults();
            string schoolYearRoute         = RouteConfigurationHelper.CreateSchoolYearSegment(useSchoolYear);

            ConfigureResourceTypeMetadataRoutes(config, apiDefaults, resourceTypesConstraint, schoolYearRoute);
            ConfigureComprehensiveMetadataRoute(config, apiDefaults, schoolYearConstraint, schoolYearRoute);
            ConfigureDependencyMetadataRoute(config, schoolYearConstraint, schoolYearRoute);

            ConfigureSchemaSpecificMetadataRoute(
                config,
                RouteConfigurationHelper.CreateSchemaNameConstraint(useSchoolYear, schemaNameConstraints),
                schoolYearRoute);
        }