public Task <int> Handle(RegisterNewMovimentacaoCommand 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)); } if (_movimentacaoRepository.Exists(request.Destino, request.ProcedimentoId)) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Movimentação já está sendo usada.")); return(Task.FromResult(0)); } var movimentacao = new Movimentacao(request.Destino, request.Data, procedimento); _movimentacaoRepository.Add(movimentacao); if (Commit()) { //TO DO } return(Task.FromResult(movimentacao.Id)); }