Beispiel #1
0
        public async Task <RequestResult> Handle(EditarPretendenteCommand request, CancellationToken cancellationToken)
        {
            var pretendenteDb = await _pretendenteRepositorio.ObterAsync(request.Id);

            if (pretendenteDb == null)
            {
                _logger.LogError($"[Editar pretendente] - pretendente {request.Id} não encontrato.");
                return(new RequestResult().NotFound());
            }

            pretendenteDb.AtualizarNome(request.Nome);

            var validate = new PretendenteValidator(_pretendenteRepositorio).Validate(pretendenteDb);

            if (!validate.IsValid)
            {
                _logger.LogError("[Editar pretendente] - " + validate.Errors.FirstOrDefault().ErrorMessage);
                return(new RequestResult().BadRequest(validate.Errors.Select(p => p.ErrorMessage).ToArray()));
            }

            await _pretendenteRepositorio.AtualizarAsync(pretendenteDb);

            await _bus.Publish(new PretendenteEditadoEvent(request.Id, request.Nome), cancellationToken);

            return(new RequestResult().Ok());
        }
        public async Task <IActionResult> Get(Guid id)
        {
            var pretendente = await _pretendenteRepositorio.ObterAsync(id);

            if (pretendente != null)
            {
                return(Ok(pretendente));
            }
            return(NotFound("Pretendente não encontrato."));
        }
Beispiel #3
0
        public async Task <RequestResult> ComputarAsync(Voto voto)
        {
            var pretendente = await _pretendenteRepositorio.ObterAsync(voto.PretendenteId);

            if (pretendente == null)
            {
                _logger.LogError($"[VotoServico - ComputarAsync - Pretendente não encontrado {voto.PretendenteId}");
                return(new RequestResult().NotFound());
            }
            var votoDb = await _votoRepositorio.ObterDoDia(voto.PretendenteId);

            if (votoDb == null)
            {
                await _votoRepositorio.AdicionarAsync(voto);
            }
            else
            {
                votoDb.Computar();
                await _votoRepositorio.AtualizarAsync(votoDb);
            }
            _logger.LogInformation($"Voto computado para o pretendente {voto.PretendenteId}.");
            return(new RequestResult().Ok());
        }