Exemple #1
0
        public bool Cadastrar(Veiculo veiculo, string placa)
        {
            try
            {
                Veiculo obj1 = _veiculoDAL.BuscarPlaca(placa);
                Veiculo obj2 = _veiculoDAL.BuscarPlacaAlugado(placa);
                if (obj1 != null || obj2 != null)
                {
                    throw new RegistroExisteException("Já existe um veículo com essa Placa no sistema!");
                }

                if (veiculo.VeiculoAlugado != null)
                {
                    return(_veiculoDAL.CadastrarAlugado(veiculo));
                }
                else
                {
                    return(_veiculoDAL.Cadastrar(veiculo));
                }
            }
            catch (TransacaoException e)
            {
                throw new TransacaoException(e.Message);
            }
            catch (ConcorrenciaBancoException e)
            {
                throw new ConcorrenciaBancoException(e.Message);
            }
        }
        public IHttpActionResult Post([FromBody] Viagem viagem)
        {
            if (viagem == null)
            {
                return(BadRequest());
            }

            Motorista motorista = _motoristaDAL.BuscarCPF(viagem.CPF);

            if (motorista == null)
            {
                return(BadRequest());
            }

            Veiculo veiculo = _veiculoDAL.BuscarPlaca(viagem.Placa);

            if (veiculo == null)
            {
                veiculo = _veiculoDAL.BuscarPlacaAlugado(viagem.Placa);

                if (veiculo == null)
                {
                    return(BadRequest());
                }
            }

            try
            {
                int requisicao = _viagemService.PopularRequisicao();
                viagem.Requisicao = requisicao;
                viagem.Ocupante   = false;

                bool result = _viagemService.Cadastrar(viagem, viagem.Requisicao);
                if (result)
                {
                    return(Ok());
                }
                else
                {
                    return(BadRequest("Houve um erro na operação!"));
                }
            }
            catch (RegistroExisteException e)
            {
                return(BadRequest(e.Message));
            }
            catch (ConcorrenciaBancoException e)
            {
                return(BadRequest(e.Message));
            }
        }