protected override async Task <HttpResponseMessage> SendAsync(
            HttpRequestMessage request,
            CancellationToken cancellationToken)
        {
            HttpRoute matchedRoute = configuration.Routes.GetRouteData(request);

            if (matchedRoute == null)
            {
                return(new HttpResponseMessage(HttpStatusCode.NotFound));
            }

            #region Please dispose the request context after request processing

            /*
             * Please find a place to dispose the request context after request processing.
             */

            try
            {
                request.SetRequestContext(configuration, matchedRoute);
                HttpResponseMessage response = await ControllerActionInvoker.InvokeAction(request);

                return(response);
            }
            catch (Exception)
            {
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }

            #endregion
        }
        protected override async Task <HttpResponseMessage> SendAsync(
            HttpRequestMessage request,
            CancellationToken cancellationToken)
        {
            HttpRoute matchedRoute = configuration.Routes.GetRouteData(request);

            if (matchedRoute == null)
            {
                return(new HttpResponseMessage(HttpStatusCode.NotFound));
            }

            HttpResponseMessage response = default(HttpResponseMessage);

            try
            {
                request.SetRequestContext(configuration, matchedRoute);
                response = await ControllerActionInvoker.InvokeAction(request);

                return(response);
            }
            catch (Exception)
            {
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }
        }
        protected override Task <HttpResponseMessage> SendAsync(
            HttpRequestMessage request, CancellationToken cancellationToken)
        {
            HttpRoute route = Configuration.Routes.GetRouteData(request);

            return(Task.FromResult(route == null
                ? new HttpResponseMessage(HttpStatusCode.NotFound)
                : ControllerActionInvoker.InvokeAction(route, Configuration.CachedControllerTypes, Configuration.DependencyResolver, Configuration.ControllerFactory)));
        }
        protected override async Task <HttpResponseMessage> SendAsync(
            HttpRequestMessage request, CancellationToken cancellationToken)
        {
            HttpRoute routeData = configuration.Routes.GetRouteData(request);

            if (routeData == null)
            {
                return(new HttpResponseMessage(HttpStatusCode.NotFound));
            }
            return(ControllerActionInvoker.InvokeAction(routeData, configuration.CachedControllerTypes,
                                                        configuration.DependencyResolver, configuration.ControllerFactory));
        }
Exemple #5
0
        protected override Task <HttpResponseMessage> SendAsync(
            HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var route = configuration.Routes.GetRouteData(request);

            if (route == null)
            {
                return(Task.FromResult(new HttpResponseMessage(HttpStatusCode.NotFound)));
            }
            return(Task.Run(() => ControllerActionInvoker.InvokeAction(route, configuration.CachedControllerTypes,
                                                                       configuration.DependencyResolver, configuration.ControllerFactory), cancellationToken));
        }