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); }
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>(); }