Esempio n. 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 bool Cadastrar(Abastecimento abastecimento, string placa, AbastecimentoTipo tipo, DateTime data) //Mudança na Query, Verificar
        {
            try
            {
                Abastecimento obj = _abastecimentoDAL.BuscarAbastecimento(placa, tipo, data);
                if (obj != null)
                {
                    throw new RegistroExisteException("Já existe uma Manutenção com esses dados no sistema!");
                }
                else
                {
                    Veiculo           veiculo           = _veiculoDAL.BuscarPlaca(placa);
                    AbastecimentoTipo abastecimentoTipo = (AbastecimentoTipo)Enum.Parse(typeof(AbastecimentoTipo), veiculo.Combustivel.ToString());

                    if (abastecimentoTipo == AbastecimentoTipo.Flex)
                    {
                        if (abastecimento.Tipo == AbastecimentoTipo.Gasolina || abastecimento.Tipo == AbastecimentoTipo.Etanol ||
                            abastecimento.Tipo == AbastecimentoTipo.Gasolina_Aditivada)
                        {
                            return(_abastecimentoDAL.Cadastrar(abastecimento));
                        }
                        else
                        {
                            throw new TipoCombustivelException("Combustível escolhido é incompatível com o veículo!");
                        }
                    }
                    else if (abastecimentoTipo == abastecimento.Tipo)
                    {
                        return(_abastecimentoDAL.Cadastrar(abastecimento));
                    }
                    else
                    {
                        throw new TipoCombustivelException("Combustível escolhido é incompatível com o veículo!");
                    }
                }
            }
            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));
            }
        }