예제 #1
0
        public Task <CommandResult> Handle(UpdateVendaCommand command, CancellationToken cancellationToken)
        {
            if (!command.IsValid())
            {
                NotifyCommandErrors(command);
                return(Response());
            }

            Cliente cliente = _clienteRepository.GetById(command.VendaId, loadRelatedData: false);
            Venda   venda   = new Venda(command.VendaId, command.DataVenda, command.Detalhes, cliente);

            Venda oldVenda = _vendaRepository.GetById(command.VendaId);

            if (oldVenda.Status == VendaStatusEnum.Fechada)
            {
                NotifyCommandError("Não é possível editar uma venda já finalizada.");
                return(Response());
            }

            _vendaRepository.Update(venda);

            if (Commit())
            {
                _mediator.PublishEvent(new UpdatedVendaEvent(venda, cliente));
            }

            return(Response());
        }
예제 #2
0
        public Task <CommandResult> Handle(UpdateVendaCommand command, CancellationToken cancellationToken)
        {
            if (!command.IsValid())
            {
                NotifyCommandErrors(command);
                return(Response());
            }

            Cliente cliente = _clienteRepository.GetById(command.VendaId);
            Venda   venda   = new Venda(command.VendaId, command.DataVenda, command.Detalhes, cliente);

            _vendaRepository.Update(venda);

            if (Commit())
            {
                _mediator.Publish(new UpdatedVendaEvent());
            }

            return(Response());
        }