private void AddRoute <TRequest>( HttpMethods method, string template = null, Type[] pipeline = null, string dataObjectKey = null, Dictionary <string, object> requestParams = null, WrapResponseDelegate wrapDelegate = null) { var branchBuilder = this.app.New(); pipeline ?.ForEach(p => branchBuilder.UseMiddleware(p)); branchBuilder.UseMiddleware <HttpApiMiddleware>(); var branch = branchBuilder.Build(); var resultUri = this.baseUri; if (!string.IsNullOrWhiteSpace(template)) { resultUri = $"{resultUri}/{template}"; } this.routeTable .AddRoute <TRequest>(method, $"/api/{resultUri}", branch, dataObjectKey, requestParams, wrapDelegate); }
public ILiaisonRoute Route( string uri, string dataObjectKey = null, Type[] pipeline = null, Dictionary <string, object> requestParams = null, WrapResponseDelegate wrapDelegate = null) { return(new LiaisonRoute(this.routeTable, uri, this.app)); }
public ILiaisonRoute Delete <TRequest>( string template = "{id}", Type[] pipeline = null, string dataObjectKey = null, Dictionary <string, object> requestParams = null, WrapResponseDelegate wrapDelegate = null) { this.AddRoute <TRequest>(HttpMethods.DELETE, template, pipeline, dataObjectKey, requestParams, wrapDelegate); return(this); }
public RouteItem AddRoute <TRequest>( HttpMethods method, string route, RequestDelegate pipeline, string dataObjectKey, Dictionary <string, object> requestParams = null, WrapResponseDelegate wrapDelegate = null) { var uriParser = new UriParser(route); var routeItem = new RouteItem { Route = route, Method = method, RequestParameters = requestParams, RequestType = typeof(TRequest), DataObjectKey = dataObjectKey, Pipeline = pipeline, WrapResponseDelegate = wrapDelegate, HasRouteParameters = uriParser.HasRouteParameters, }; if (this.routeDictionary .AddRoute(routeItem, uriParser)) { return(routeItem); } var exception = new Exception("Registering Duplicate Routes"); this.logger .LogError(exception, "Trying to add duplicate route keys added, {Route}", route); throw exception; }