public Importacao RecuperarPorId(CodigoPadraoDTO dto)
        {
            var registro = _db.Importacao.Include("Carros").Select(x => new {
                x.Carros,
                x.DataImportacao,
                x.Descricao,
                x.Id,
                x.Observacao,
                x.TipoImportacao
            }).FirstOrDefault(x => x.Id == dto.Id);

            if (registro == null)
            {
                throw new Exception("Registro " + dto.Id + " não encontrado! ");
            }

            var importacao = new Importacao()
            {
                Carros         = registro.Carros,
                DataImportacao = registro.DataImportacao,
                Descricao      = registro.Descricao,
                Id             = registro.Id,
                Observacao     = registro.Observacao,
                TipoImportacao = registro.TipoImportacao
            };

            return(importacao);
        }
        public Carros RecuperarPorId(CodigoPadraoDTO dto)
        {
            var registro = _db.Carros.FirstOrDefault(x => x.Id == dto.Id);

            if (registro == null)
            {
                throw new Exception("Registro " + dto.Id + " não encontrado! ");
            }

            return(registro);
        }
        public HttpResponseMessage Remover(CodigoPadraoDTO dto)
        {
            try
            {
                _servCarros.Remover(dto);

                return(Request.CreateResponse(HttpStatusCode.OK, new { Mensagem = "Registro removido com sucesso!" }));
            }
            catch (System.Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new { Mensagem = e.Message }));
            }
        }
        public HttpResponseMessage RecuperarPorId(CodigoPadraoDTO dto)
        {
            try
            {
                var retorno = _servCarros.RecuperarPorId(dto);

                return(Request.CreateResponse(HttpStatusCode.OK, new { Content = retorno, Mensagem = "Registro recuperado com sucesso!" }));
            }
            catch (System.Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new { Mensagem = e.Message }));
            }
        }
        public HttpResponseMessage RecuperarImportacoesComparacao(CodigoPadraoDTO dto)
        {
            try
            {
                var retorno = _servImportacao.RecuperarImportacoesComparacao(dto);

                return(Request.CreateResponse(HttpStatusCode.OK, new { Content = retorno, Mensagem = "Importações recuperadas com sucesso!" }));
            }
            catch (System.Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new { Mensagem = e.Message }));
            }
        }
        public void Remover(CodigoPadraoDTO dto)
        {
            var registro = _db.Importacao.FirstOrDefault(x => x.Id == dto.Id);

            try
            {
                _db.Importacao.Remove(registro);
                _db.SaveChanges();
            }
            catch (Exception e)
            {
                throw new Exception(e.InnerException.InnerException.Message);
            }
        }
        public void Remover(CodigoPadraoDTO dto)
        {
            var validarImportacoes = _db.Importacao.FirstOrDefault(x => x.Carros.Id == dto.Id);

            if (validarImportacoes != null)
            {
                throw new Exception("Não é possível remover este carro, pois importações dependem deste registro!");
            }

            var registro = RecuperarPorId(dto);

            try
            {
                _db.Carros.Remove(registro);
                _db.SaveChanges();
            }
            catch (Exception e)
            {
                throw new Exception(e.InnerException.InnerException.Message);
            }
        }
        public List <Importacao> RecuperarImportacoesComparacao(CodigoPadraoDTO dto)
        {
            var registros = _db.Importacao.Where(x => x.Id != dto.Id).OrderByDescending(x => x.Id);

            var listImportacao = new List <Importacao>();

            foreach (var item in registros)
            {
                var importacao = new Importacao()
                {
                    Carros         = item.Carros,
                    DataImportacao = item.DataImportacao,
                    Descricao      = item.Descricao,
                    Id             = item.Id,
                    Observacao     = item.Observacao,
                    TipoImportacao = item.TipoImportacao
                };

                listImportacao.Add(importacao);
            }

            return(listImportacao);
        }