/// <inheritdoc /> public Task Execute(IMessage instance, ExecutionContext context) { var tasks = new List <Task> { _actions.Append(new ResponseEntry(context, _environmentContext.Resolve())) }; var name = context.Request.Message.Name; if (!context.IsSuccessful) { if (context.Exception != null) { _logger.Error(context.Exception, "An unhandled exception was raised while executing \"" + name + "\".", context); } else if (context.ValidationErrors?.Any() ?? false) { _logger.Error("Execution completed with validation errors while executing \"" + name + "\": " + string.Join("; ", context.ValidationErrors.Select(e => e.Type + ": " + e.Message)), context); } else { _logger.Error("Execution completed unsuccessfully while executing \"" + name + "\".", context); } } else { _logger.Verbose("Successfully executed \"" + name + "\".", context); } return(Task.WhenAll(tasks)); }
private object[] CreateProperties(IEnumerable <object> original) { return(original.Union(new[] { _environment.Resolve() }).ToArray()); }