Beispiel #1
0
        internal static Func <Ccf.Ck.Models.DirectCall.InputModel, Task <Ccf.Ck.Models.DirectCall.ReturnModel> > ExecutionDelegateDirect(IApplicationBuilder builder, KraftGlobalConfigurationSettings kraftGlobalConfigurationSettings)
        {
            Func <Ccf.Ck.Models.DirectCall.InputModel, Task <Ccf.Ck.Models.DirectCall.ReturnModel> > directDelegate = (inputModel) =>
            {
                var transactionScope      = new TransactionScopeContext(builder.ApplicationServices.GetService <IServiceCollection>());
                var nodesSetService       = builder.ApplicationServices.GetService <INodeSetService>();
                var kraftModuleCollection = builder.ApplicationServices.GetService <KraftModuleCollection>();
                Models.DirectCall.ReturnModel returnModel = null;
                DirectCallHandler             dcHandler   = new DirectCallHandler(inputModel, kraftModuleCollection, nodesSetService);
                IProcessingContextCollection  processingContextCollection = dcHandler.GenerateProcessingContexts(kraftGlobalConfigurationSettings, null);
                foreach (IProcessingContext processingContext in processingContextCollection.ProcessingContexts)
                {
                    dcHandler.Execute(processingContext, transactionScope);
                    returnModel = new Models.DirectCall.ReturnModel
                    {
                        Data         = processingContext.ReturnModel.Data,
                        BinaryData   = processingContext.ReturnModel.BinaryData,
                        IsSuccessful = processingContext.ReturnModel.Status.IsSuccessful
                    };
                    return(Task.FromResult(returnModel));
                }
                return(Task.FromResult(returnModel));
            };

            return(directDelegate);
        }
Beispiel #2
0
 public RequestExecutor(IServiceProvider serviceProvider, HttpContext httpContext, KraftGlobalConfigurationSettings kraftGlobalConfigurationSettings)
 {
     _ServiceProvider = serviceProvider;
     _HttpContext     = httpContext;
     _KraftGlobalConfigurationSettings = kraftGlobalConfigurationSettings;
     _TransactionScope      = new TransactionScopeContext(_ServiceProvider.GetService <IServiceCollection>());
     _NodesSetService       = _ServiceProvider.GetService <INodeSetService>();
     _KraftModuleCollection = _ServiceProvider.GetService <KraftModuleCollection>();
 }