public Task <PipelineResult> ExecuteAsync(PipelineExecutionContext <BasicRequest> context) { Trace.WriteLine("COMPLETED BASIC PIPELINE STEP"); return(Task.FromResult( PipelineResult.Success(new[] { new BasicEventHappened(1) }) )); }
public void Run() { try { _message = _dbContext.Messages.First(m => m.Id == _messageId); _message.AttemptCount++; _message.StatusCode = (int)MessageStatusCodes.Preparing; _dbContext.SaveChanges(); var workflowActions = _dbContext .WorkflowActions .Where(wa => wa.Workflow.RequestCodeId == _requestCode) .ToList(); List <GlobalSetting> globalSettings = _dbContext.GlobalSettings.ToList(); _workflowExecutionContext = new WorkflowExecutionContext(_message, globalSettings); SetMessageStatus(MessageStatusCodes.InProgress); foreach (var workflowAction in workflowActions) { PipelineExecutionContext pipelineExecutionContext = new PipelineExecutionContext(_workflowExecutionContext, _dbContext); PipelineProcessor pipeline = new PipelineProcessor(pipelineExecutionContext, workflowAction); pipeline.Run(); //TODO: Temp solution _message.ResponseBody = pipelineExecutionContext.ResponseBody; } SetMessageStatus(MessageStatusCodes.Processed); } catch (Exception ex) { log.Fatal("Во время выполнения работы WorkflowProcessor произошла ошибка", ex); _message.ErrorMessage = ex.Message; SetMessageStatus(MessageStatusCodes.Error); } }
public async Task <PipelineResult> ExecuteAsync(PipelineExecutionContext <TRequest> context) { var result = new PipelineResult(); if (result == null) { return(PipelineResult.Error(500, "Cannot build initial result object")); } foreach (var step in _steps.Where(m => m is IPipelineStep <TRequest>).Select(m => m as IPipelineStep <TRequest>)) { // execute!! var stepResult = await step.ExecuteAsync(context); // calculate the running result aggregation result.IsSuccessful &= stepResult.IsSuccessful; result.Messages = result.Messages == null ? stepResult.Messages : result.Messages.Union(stepResult.Messages); result.Events = result.Events == null ? stepResult.Events : result.Events.Union(stepResult.Events); // do we need to get out of here because of an error? if (context.Options.BreakOnError && !result.IsSuccessful) { return(result); } } return(result); }
public Task <PipelineResult> ExecuteAsync(PipelineExecutionContext <CreateTodoTask> context) { throw new System.NotImplementedException(); }