Пример #1
0
        public static object RunAction <TService, TRequest>(
            this TService service, TRequest request, Func <TService, TRequest, object> invokeAction,
            IRequest requestContext = null)
            where TService : IService
        {
            var actionCtx = new ActionContext
            {
                RequestFilters  = new IHasRequestFilter[0],
                ResponseFilters = new IHasResponseFilter[0],
                ServiceType     = typeof(TService),
                RequestType     = typeof(TRequest),
                ServiceAction   = (instance, req) => invokeAction(service, request)
            };

            requestContext = requestContext ?? new MockHttpRequest();
            ServiceController.InjectRequestContext(service, requestContext);
            var runner   = HostContext.CreateServiceRunner <TRequest>(actionCtx);
            var response = runner.Execute(requestContext, service, request);

            return(response);
        }