public void ConfigureRoutes(HttpConfiguration config, bool useSchoolYear) { Preconditions.ThrowIfNull(config, nameof(config)); var routeConstraints = RouteConfigurationHelper.CreateSchoolYearConstraint(useSchoolYear); var schoolYearSegment = useSchoolYear ? "{schoolYearFromRoute}/" : string.Empty; config.Routes.MapHttpRoute( name: "IdentitiesCreate", routeTemplate: "identity/v{identityVersion}/" + schoolYearSegment + "identities", defaults: new { identityVersion = ApiVersionConstants.Identity, controller = "Identities", action = "Create" }, constraints: routeConstraints ); config.Routes.MapHttpRoute( name: "IdentitiesFind", routeTemplate: "identity/v{identityVersion}/" + schoolYearSegment + "identities/find", defaults: new { identityVersion = ApiVersionConstants.Identity, controller = "Identities", action = "Find" }, constraints: routeConstraints ); config.Routes.MapHttpRoute( name: "IdentitiesSearch", routeTemplate: "identity/v{identityVersion}/" + schoolYearSegment + "identities/search", defaults: new { identityVersion = ApiVersionConstants.Identity, controller = "Identities", action = "Search" }, constraints: routeConstraints ); config.Routes.MapHttpRoute( name: "IdentitiesGetById", routeTemplate: "identity/v{identityVersion}/" + schoolYearSegment + "identities/{id}", defaults: new { identityVersion = ApiVersionConstants.Identity, controller = "Identities", action = "GetById" }, constraints: routeConstraints ); config.Routes.MapHttpRoute( name: "IdentitiesSearchResult", routeTemplate: "identity/v{identityVersion}/" + schoolYearSegment + "identities/results/{id}", defaults: new { identityVersion = ApiVersionConstants.Identity, controller = "Identities", action = "Result" }, constraints: routeConstraints ); }