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()); }
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()); }