ODataPathTemplate GetODataPathTemplate(string prefix, string pathTemplate, IServiceProvider serviceProvider, string controllerName, string actionName) { if (prefix != null && !pathTemplate.StartsWith("/", Ordinal)) { if (string.IsNullOrEmpty(pathTemplate)) { pathTemplate = prefix; } else if (pathTemplate.StartsWith("(", Ordinal)) { pathTemplate = prefix + pathTemplate; } else { pathTemplate = prefix + "/" + pathTemplate; } } if (pathTemplate.StartsWith("/", Ordinal)) { pathTemplate = pathTemplate.Substring(1); } try { return(ODataPathTemplateHandler.ParseTemplate(pathTemplate, serviceProvider)); } catch (ODataException e) { throw new InvalidOperationException(SR.InvalidODataRouteOnAction.FormatDefault(pathTemplate, actionName, controllerName, e.Message)); } }
private ODataPathTemplate GetODataPathTemplate(string prefix, string pathTemplate, HttpActionDescriptor action) { if (prefix != null && !pathTemplate.StartsWith("/", StringComparison.Ordinal)) { if (String.IsNullOrEmpty(pathTemplate)) { pathTemplate = prefix; } else { pathTemplate = prefix + "/" + pathTemplate; } } if (pathTemplate.StartsWith("/", StringComparison.Ordinal)) { pathTemplate = pathTemplate.Substring(1); } ODataPathTemplate odataPathTemplate = null; try { odataPathTemplate = ODataPathTemplateHandler.ParseTemplate(Model, pathTemplate); } catch (ODataException e) { throw Error.InvalidOperation(SRResources.InvalidODataRouteOnAction, pathTemplate, action.ActionName, action.ControllerDescriptor.ControllerName, e.Message); } return(odataPathTemplate); }
private ODataPathTemplate GetODataPathTemplate(RouteContext context, string prefix, string pathTemplate, ControllerActionDescriptor action, IEdmModel model) { if (string.IsNullOrEmpty(prefix)) { var parametetrs = string.Join( ", ", action.Parameters.Select(p => $"{p.Name}={{{p.Name}}}")); prefix = $"{action.ActionName}({parametetrs})"; } if (!pathTemplate.StartsWith("/", StringComparison.Ordinal)) { if (String.IsNullOrEmpty(pathTemplate)) { pathTemplate = prefix; } else if (pathTemplate.StartsWith("(", StringComparison.Ordinal)) { // We don't need '/' when the pathTemplate starts with a key segment. pathTemplate = prefix + pathTemplate; } else { pathTemplate = prefix + "/" + pathTemplate; } } if (pathTemplate.StartsWith("/", StringComparison.Ordinal)) { pathTemplate = pathTemplate.Substring(1); } ODataPathTemplate odataPathTemplate; try { //IEdmModel model = new EdmModel(); // TODO: odataPathTemplate = ODataPathTemplateHandler.ParseTemplate(model, pathTemplate, context.HttpContext.ODataFeature().UriResolverSettings); } catch (ODataException e) { /* * throw Error.InvalidOperation(SRResources.InvalidODataRouteOnAction, pathTemplate, action.ActionName, * action.ControllerDescriptor.ControllerName, e.Message);*/ // TODO: return(null); } return(odataPathTemplate); }
private ODataPathTemplate GetODataPathTemplate(string prefix, string pathTemplate, ControllerActionDescriptor action, IEdmModel model) { if (prefix != null && !pathTemplate.StartsWith("/", StringComparison.Ordinal)) { if (String.IsNullOrEmpty(pathTemplate)) { pathTemplate = prefix; } else if (pathTemplate.StartsWith("(", StringComparison.Ordinal)) { // We don't need '/' when the pathTemplate starts with a key segment. pathTemplate = prefix + pathTemplate; } else { pathTemplate = prefix + "/" + pathTemplate; } } if (pathTemplate.StartsWith("/", StringComparison.Ordinal)) { pathTemplate = pathTemplate.Substring(1); } ODataPathTemplate odataPathTemplate; try { //IEdmModel model = new EdmModel(); // TODO: odataPathTemplate = ODataPathTemplateHandler.ParseTemplate(model, pathTemplate); } catch (ODataException e) { /* * throw Error.InvalidOperation(SRResources.InvalidODataRouteOnAction, pathTemplate, action.ActionName, * action.ControllerDescriptor.ControllerName, e.Message);*/ // TODO: return(null); } return(odataPathTemplate); }
private ODataPathTemplate GetODataPathTemplate(string prefix, string pathTemplate, HttpActionDescriptor action) { if (prefix != null && !pathTemplate.StartsWith("/", StringComparison.Ordinal)) { if (String.IsNullOrEmpty(pathTemplate)) { pathTemplate = prefix; } else if (pathTemplate.StartsWith("(", StringComparison.Ordinal)) { // We don't need '/' when the pathTemplate starts with a key segment. pathTemplate = prefix + pathTemplate; } else { pathTemplate = prefix + "/" + pathTemplate; } } if (pathTemplate.StartsWith("/", StringComparison.Ordinal)) { pathTemplate = pathTemplate.Substring(1); } ODataPathTemplate odataPathTemplate; try { // We are NOT in a request but establishing the attribute routing convention. // So use the root container rather than the request container. odataPathTemplate = ODataPathTemplateHandler.ParseTemplate(pathTemplate, action.Configuration.GetODataRootContainer(_routeName)); } catch (ODataException e) { throw Error.InvalidOperation(SRResources.InvalidODataRouteOnAction, pathTemplate, action.ActionName, action.ControllerDescriptor.ControllerName, e.Message); } return(odataPathTemplate); }
ODataPathTemplate GetODataPathTemplate(string prefix, string pathTemplate, HttpActionDescriptor action) { Contract.Requires(pathTemplate != null); Contract.Requires(action != null); Contract.Ensures(Contract.Result <ODataPathTemplate>() != null); if (prefix != null && !pathTemplate.StartsWith("/", StringComparison.Ordinal)) { if (string.IsNullOrEmpty(pathTemplate)) { pathTemplate = prefix; } else if (pathTemplate.StartsWith("(", StringComparison.Ordinal)) { pathTemplate = prefix + pathTemplate; } else { pathTemplate = prefix + "/" + pathTemplate; } } if (pathTemplate.StartsWith("/", StringComparison.Ordinal)) { pathTemplate = pathTemplate.Substring(1); } var odataPathTemplate = default(ODataPathTemplate); try { odataPathTemplate = ODataPathTemplateHandler.ParseTemplate(pathTemplate, action.Configuration.GetODataRootContainer(routeName)); } catch (ODataException e) { throw new InvalidOperationException(SR.InvalidODataRouteOnAction.FormatDefault(pathTemplate, action.ActionName, action.ControllerDescriptor.ControllerName, e.Message)); } return(odataPathTemplate); }