예제 #1
0
        public async Task Handle(SolicitacaoLocacaoRecusadaEvent message, CancellationToken cancellationToken)
        {
            Solicitacao solicitacaoParaRecusar = await _solicitacaoRepository.ObterPorId(message.SolicitacaoId);

            solicitacaoParaRecusar.Recusar(message.Motivo);

            _solicitacaoRepository.AtualizarSolicitacao(solicitacaoParaRecusar);

            await _solicitacaoRepository.Commit();
        }
예제 #2
0
        public async Task <SolicitationDto> Execute(SolicitationDto solicitationDto, int clientId)
        {
            if (solicitationDto.AskDtos.Count() < 5)
            {
                throw new AppError("Responda todas as questões!");
            }
            if (clientId == 0)
            {
                throw new AppError("Escolha um cliente válido!");
            }
            Pessoa client = await _pessoaRepository.GetByID(clientId);

            if (client == null)
            {
                throw new AppError("Cliente não encontrado!", 404);
            }
            if (solicitationDto.ReceivingDate > DateTime.Now)
            {
                throw new AppError("Data de recebimento não pode ser uma data futura");
            }
            Solicitacao solicitacao = SolicitationDtoMapToSolicitacao.Map(new Solicitacao(), solicitationDto);

            solicitacao.fkPessoa   = client;
            solicitacao.fkPessoaId = client.Id;

            _solicitacaoRepository.Insert(solicitacao);
            await _solicitacaoRepository.Commit();

            solicitationDto.Id = solicitacao.Id;
            return(solicitationDto);
        }