public IResposta <Estadia> RetirarCarro(string placa)
        {
            var estadia     = _repoEstadia.BuscarPorPlaca(placa);
            var objResposta = new Resposta <Estadia>();

            if (estadia == null)
            {
                objResposta.Erro = new ErroObjetoInexistente("estadia", "placa");
            }
            else
            {
                estadia.Saida = DateTime.Now;
                estadia.Valor = GerarValorDeEstadia(estadia);
                _repoEstadia.SalvarSaida(estadia);
                objResposta.Resultado = estadia;
            }
            return(objResposta);
        }
        public async Task <IResposta <Estadia> > EntrarCarro(string placa)
        {
            var objResposta = new Resposta <Estadia>();
            var carro       = await _repoCarros.BuscarPorPlaca(placa);

            var estadiaExistente = _repoEstadia.BuscarPorPlaca(carro.Placa);

            if (estadiaExistente != null)
            {
                objResposta.Erro = new ErroObjetoExistente("Estadia", "Placa");
            }
            else
            {
                objResposta.Resultado = _repoEstadia.SalvarEntrada(new Estadia(carro, DateTime.Now));
            }

            return(objResposta);
        }
        public async Task<IResposta<Carro>> CadastrarCarro(CarroDTO dadosCarro)
        {

            var objResposta = new Resposta<Carro>();

            var carroEncontrado = await _repoCarros.BuscarPorPlaca(dadosCarro.Placa);

            if (carroEncontrado == null)
            {
                var carro = new Carro(dadosCarro.Modelo, (ECor)Enum.Parse(typeof(ECor), dadosCarro.Cor),
                      dadosCarro.Placa, (ETamanho)Enum.Parse(typeof(ETamanho), dadosCarro.Tamanho));

                objResposta.Resultado = await _repoCarros.Inserir(carro);
            }
            else
            {
                objResposta.Erro = new ErroObjetoExistente("Carro", "placa");
            }

            return objResposta;

        }