public Task <int> Handle(RegisterNewSituacaoProcedimentoCommand 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 situacao = _situacaoRepository.GetById(request.SituacaoId); if (situacao == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Situação não foi encontrada.")); return(Task.FromResult(0)); } SituacaoTipo tipoSituacao = null; if (request.SituacaoTipoId.HasValue) { tipoSituacao = _situacaoTipoRepository.GetById(request.SituacaoTipoId.Value); if (request.SituacaoTipoId.Value > 0 && tipoSituacao == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O motivo não foi encontrado.")); return(Task.FromResult(0)); } } //if (_situacaoProcedimentoRepository.Exists(request.ProcedimentoId, request.SituacaoId, request.SituacaoTipoId)) //{ // Bus.RaiseEvent(new DomainNotification(request.MessageType, "O procedimento encontra-se na situação atual. Nada pra atualizar.")); // return Task.FromResult(0); //} var situacaoProcedimento = new SituacaoProcedimento(procedimento, situacao, tipoSituacao, request.DataRelatorio, request.Observacao); _situacaoProcedimentoRepository.Add(situacaoProcedimento); procedimento.SituacaoAtual = situacao; _procedimentoRepository.Update(procedimento); if (Commit()) { //TO DO } return(Task.FromResult(situacaoProcedimento.Id)); }
public Task <int> Handle(UpdateSituacaoTipoCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { NotifyValidationErrors(request); return(Task.FromResult(0)); } var situacao = _situacaoRepository.GetById(request.SituacaoId); if (situacao == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Situação não foi encontrada.")); return(Task.FromResult(0)); } var existingTipoSituacao = _situacaoTipoRepository.GetById(request.Id); if (existingTipoSituacao == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O Tipo de Situação não foi encontrado.")); return(Task.FromResult(0)); } if (_situacaoTipoRepository.Exists(request.Descricao, request.SituacaoId)) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O Tipo já está sendo usado.")); return(Task.FromResult(0)); } existingTipoSituacao.Descricao = request.Descricao; _situacaoTipoRepository.Update(existingTipoSituacao); if (Commit()) { //TO DO } return(Task.FromResult(existingTipoSituacao.Id)); }