コード例 #1
0
        /// <summary>
        /// Start nested batch action
        /// </summary>
        /// <param name="batchName">Batch name</param>
        /// <param name="actionName">Action name</param>
        /// <param name="context">The <see cref="BatchExecutionContext"/> context</param>
        /// <returns></returns>
        public Task startBatch(string batchName, string actionName, BatchExecutionContext context)
        {
            BatchUrlManager urlManager = new BatchUrlManager(batchName, actionName);

            var contextInvoker = ContextInvoker.Create(context.RequestServices, context.Request, context.Response);

            return(_batchHandler.InvokeAsync(contextInvoker, urlManager));
        }
コード例 #2
0
        public static BatchExecutionContext Create(ContextInvoker context)
        {
            var executionContext = new BatchExecutionContext();

            executionContext.ActionDescriptor = context.ActionDescriptor;
            //executionContext.Configuration = context.ActionDescriptor.BatchConfiguration;
            executionContext.Request         = context.Request;
            executionContext.Response        = context.Response;
            executionContext.ShareMessage    = context.ShareMessage;
            executionContext.RequestServices = context.RequestServices;
            executionContext.SessionId       = context.SessionId;

            return(executionContext);
        }
コード例 #3
0
        public static ContextInvoker Create(IServiceProvider requestServices, HttpRequest request, HttpResponse response)
        {
            var contextInvoker = new ContextInvoker()
            {
                RequestServices = requestServices,
                Request         = request,
                Response        = response,
                SessionId       = Guid.NewGuid()
            };

            if (request.QueryString.HasValue)
            {
                contextInvoker.Parameters.AddFromQueryString(request.QueryString);
            }
            return(contextInvoker);
        }
コード例 #4
0
        public static ContextInvoker Create(HttpContext context)
        {
            var contextInvoker = new ContextInvoker()
            {
                RequestServices = context.RequestServices,
                Request         = context.Request,
                Response        = context.Response,
                SessionId       = Guid.NewGuid()
            };

            if (context.Request.QueryString.HasValue)
            {
                contextInvoker.Parameters.AddFromQueryString(context.Request.QueryString);
            }
            return(contextInvoker);
        }
コード例 #5
0
        /// <summary>
        /// Start nested batch action.
        /// </summary>
        /// <param name="batchName">Batch name</param>
        /// <param name="actionName">Action name</param>
        /// <param name="context">The <see cref="ContextInvoker"/> context</param>
        /// <returns>Return a <see cref="Task"/></returns>
        public Task startBatch(string batchName, string actionName, ContextInvoker context)
        {
            BatchUrlManager urlManager = new BatchUrlManager(batchName, actionName);

            return(_batchHandler.InvokeAsync(context, urlManager));
        }