public async Task <Guid> Handle(AlterarSituacaoPedidoCommand request, CancellationToken cancellationToken) { var historicoPedido = new HistoricoPedido(); var pedido = _pedidoRepository.GetEntityById(request.IDPedido); if (pedido == null) { request.AddNotification("Pedido", $"Pedido({request.IDPedido}) não encontrado no banco de dados."); } else { historicoPedido = new HistoricoPedido(request.Situacao, pedido.Id); } if (historicoPedido.Invalid || request.Invalid) { historicoPedido.AddNotifications(request.Notifications); await _mediator.Publish(new DomainNotification { Erros = historicoPedido.Notifications }, cancellationToken); return(await Task.FromResult(Guid.Empty)); } _historicoPedidoRepository.Add(historicoPedido); return(await Task.FromResult(historicoPedido.Id)); }
public async Task <Guid> AlterarSituacao(AlterarSituacaoPedidoViewModel alterarSituacaoPedidoViewModel) { var enumSituacao = Enum.Parse <EnumSituacaoPedido>(alterarSituacaoPedidoViewModel.Situacao.ToString()); var command = new AlterarSituacaoPedidoCommand(alterarSituacaoPedidoViewModel.IDPedido, enumSituacao); return(await _mediator.Send(command)); }
public async Task DeveRetornarErroSePedidoNaoExistirAoAlterarSituacao() { var handler = new PedidoCommandHandler( _pedidoGetEntityNullRepository, _garcomRepository, _comandaRepository, _historicoPedidoRepository, _produtoPedidoRepository, _clienteRepository, _mediator); var command = new AlterarSituacaoPedidoCommand(Guid.NewGuid(), Enums.EnumSituacaoPedido.Aberto); var retorno = await handler.Handle(command, new CancellationToken()); Assert.Equal(Guid.Empty, retorno); }
public async Task DeveRetornarErroSeInformarSituacaoInvalidaAoAlterarSituacao() { var handler = new PedidoCommandHandler( _pedidoRepository, _garcomRepository, _comandaRepository, _historicoPedidoRepository, _produtoPedidoRepository, _clienteRepository, _mediator); EnumSituacaoPedido enumSituacaoPedido = Enum.Parse <EnumSituacaoPedido>("9999"); var command = new AlterarSituacaoPedidoCommand(Guid.NewGuid(), enumSituacaoPedido); var retorno = await handler.Handle(command, new CancellationToken()); Assert.Equal(Guid.Empty, retorno); }