Beispiel #1
0
        /// <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));
        }
Beispiel #2
0
 private object[] CreateProperties(IEnumerable <object> original)
 {
     return(original.Union(new[]
     {
         _environment.Resolve()
     }).ToArray());
 }