public Task <int> Handle(UpdateMovimentacaoCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { NotifyValidationErrors(request); return(Task.FromResult(0)); } var procedimento = _procedimentoRepository.GetById(request.ProcedimentoId); if (procedimento == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O procedimento não foi encontrado.")); return(Task.FromResult(0)); } var existingMovimentacao = _movimentacaoRepository.GetAsNoTracking(x => x.Id == request.Id); if (existingMovimentacao == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Movimentação não foi encontrada.")); return(Task.FromResult(0)); } var movimentacao = new Movimentacao(request.Id, request.Destino, request.Data, procedimento, request.RetornouEm); if (!movimentacao.Equals(existingMovimentacao)) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Movimentação não foi encontrada.")); return(Task.FromResult(0)); } _movimentacaoRepository.Update(movimentacao); if (Commit()) { //TO DO } return(Task.FromResult(movimentacao.Id)); }