示例#1
0
        public IBatchActionProvider getProvider(IBatchUrlManager urlManager)
        {
            switch (urlManager.RequestCommand)
            {
            case BatchUrlManagerCommand.Exec:
                return(_actionProvider);

            case BatchUrlManagerCommand.Status:
                return(_systemProvider);

            default:
                throw new ArgumentNullException($"Command {urlManager.RequestCommand.ToString()} not found");
            }
        }
示例#2
0
        public async Task <string> InvokeAsync(IBatchUrlManager urlManager, ContextInvoker context)
        {
            switch (urlManager.RequestCommand)
            {
            case BatchUrlManagerCommand.Status:
                var batchStaus = await _trakingProvider.GetStatusAsync(new Guid(context.Parameters["sessionid"].ToString()));

                var result = _modelSerializer.Serialize(batchStaus);
                return(result);

            default:
                throw new InvalidCastException($"Command {urlManager.RequestCommand.ToString()} not found");
            }
        }
        public async Task <string> InvokeAsync(IBatchUrlManager urlManager, ContextInvoker context)
        {
            try
            {
                var batchActionDescriptor = Search(urlManager.RequestBatchName, urlManager.RequestBatchAction);
                context.ActionDescriptor = batchActionDescriptor;

                if (batchActionDescriptor.IsAsync)
                {
                    var response = _batchInvokerProvider.InvokeAsync(context);
                    return("Batch Started");
                }
                else
                {
                    var response = await _batchInvokerProvider.InvokeAsync(context) as string;

                    return(response?.ToString());
                }
            }catch (Exception ex)
            {
                throw ex;
            }
        }