public void ConfigureRoutes(HttpConfiguration config, bool useSchoolYear) { Preconditions.ThrowIfNull(config, nameof(config)); var apiDefaults = new { apiVersion = ApiVersionConstants.Ods, identityVersion = ApiVersionConstants.Identity }; config.Routes.MapHttpRoute( name: "ApiDefaultCollection", routeTemplate: "data/v{apiVersion}/" + (useSchoolYear ? "{schoolYearFromRoute}/" : string.Empty) + "{schema}/{controller}", defaults: apiDefaults, constraints: useSchoolYear ? RouteConfigurationHelper.CreateSchoolYearRouteConstraints() : RouteConfigurationHelper.CreateRouteConstraints()); config.Routes.MapHttpRoute( name: "ApiDefaultItem", routeTemplate: "data/v{apiVersion}/" + (useSchoolYear ? "{schoolYearFromRoute}/" : string.Empty) + "{schema}/{controller}/{id}", defaults: apiDefaults, constraints: useSchoolYear ? RouteConfigurationHelper.CreateSchoolYearWithIdRouteConstraints() : RouteConfigurationHelper.CreateIdRouteConstraints()); config.Routes.MapHttpRoute( name: "Root", routeTemplate: "", defaults: new { controller = "Version", action = "Index" }); }