Exemplo n.º 1
0
        public TResult Process <TCommand, TResult>(ICommand <TCommand, TResult> command) where TCommand : ICommand <TCommand, TResult>
        {
            var handler = resolver.Resolve(command);
            var result  = handler.Handle((TCommand)command);

            return(result);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Post([FromBody] Update update)
        {
            var request = _commandResolver.Resolve(update);
            await _mediator.Send(request);

            return(Ok());
        }
Exemplo n.º 3
0
        public async Task RunAsync(params string[] args)
        {
            if (args.Length > 0)
            {
                var name = args[0];
                args = args.Skip(1).ToArray();

                try
                {
                    var command = _commandResolver.Resolve(name, args);
                    await command.ExecuteAsync().ConfigureAwait(false);

                    if (_options.AutoClose == false)
                    {
                        Console.ReadKey();
                    }
                }
                catch (Exception e)
                {
                    _logger.LogCritical(e.Message);
                }
            }
            else
            {
                _logger.LogError("No valid command was specified!");
            }
        }
Exemplo n.º 4
0
        private CommandModel FindCommand(string[] commandName)
        {
            var name    = _commandNameParser.Parse(String.Join(" ", commandName));
            var context = new Dictionary <string, object>();

            ContextHelper.SetCommandName(context, name.Parts as string[] ?? name.Parts.ToArray());

            return(_commandResolver.Resolve(context, _appModel.Commands));
        }
Exemplo n.º 5
0
        private async Task OnMessageReceived(object sender, MessageReceived @event)
        {
            _logger.LogInformation("processing Message '{MessageId}' with type: '{MessageType}' ...", @event.Message.Id, @event.Message.MessageType);

            var command = _commandResolver.Resolve(@event.Message);

            using var innerScope = _scopeFactory.CreateScope();
            var mediatr = innerScope.ServiceProvider.GetRequiredService <MediatR.IMediator>();
            await mediatr.Publish(command);
        }
Exemplo n.º 6
0
        public ICraneCommand Create(params string[] args)
        {
            if (args == null || args.Length == 0)
            {
                return(new ListCommands());
            }

            var commandType     = _commandResolver.Resolve(_craneCommands, args[0]);
            var commandWithArgs = _commandArgParser.Parse(commandType, args);

            return(commandWithArgs);
        }
Exemplo n.º 7
0
        public async Task ExecuteCommand(Dictionary <string, object> context)
        {
            var token    = GetCancellationToken(context);
            var options  = GetOptions(context);
            var operands = GetOperands(context);

            token.ThrowIfCancellationRequested();

            using (var scope = _services.CreateScope())
            {
                var services  = new ArgumentsServiceProvider(scope.ServiceProvider, token);
                var command   = _commandResolver.Resolve(context, _appModel.Commands);
                var arguments = _argumentsParser.Parse(command.Arguments, options, operands, services);

                token.ThrowIfCancellationRequested();

                await _commandExecutor.ExecuteAsync(
                    command, arguments, services, token)
                .ConfigureAwait(false);
            }
        }
        public T Generate()
        {
            context = new Evaluator(resolver.Resolve(), context).Evaluate();

            return(OnEvaluated());
        }
Exemplo n.º 9
0
 public ICommand <TCommandContext> Create <TCommandContext>()
     where TCommandContext : ICommandContext
 {
     return(commandResolver.Resolve <TCommandContext>());
 }
Exemplo n.º 10
0
        public Task InvokeCommand(string commandName)
        {
            var command = _commandResolver.Resolve(commandName) ?? _commandResolver.Resolve("undefined") !;

            return(_commandInvoker.InvokeCommand(command, _request));
        }