//[ValidateAntiForgeryToken]
        public virtual async Task <ResponseViewModel <Carro> > RegistrarCarro(Carro carro)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    using (ClientesController clientesController = new ClientesController())
                    {
                        var retornoCarro = await Cadastrar(carro);

                        var cliente = await clientesController.Detalhes(carro.IdCliente);

                        cliente.Data.TemCarro = true;
                        var retornoCliente = await clientesController.Editar(cliente.Data);

                        var response = new ResponseViewModel <Carro>
                        {
                            Data     = retornoCarro.Data,
                            Sucesso  = true,
                            Mensagem = "Entidade Cadastrada com sucesso."
                        };
                        return(response);
                    };
                }
                else
                {
                    var response = new ResponseViewModel <Carro>
                    {
                        Data     = carro,
                        Sucesso  = false,
                        Mensagem = "Erro na validação da entidade."
                    };
                    return(response);
                }
            }
            catch (Exception e)
            {
                return(new ResponseViewModel <Carro>()
                {
                    Data = null,
                    Serializado = true,
                    Sucesso = false,
                    Mensagem = "Não foi possivel atender a sua solicitação: " + e.Message
                });
            }
        }
        //[ValidateAntiForgeryToken]
        public virtual async Task <ResponseViewModel <Carro> > RegistrarCarro(Carro carro)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    using (ClientesController clientesController = new ClientesController())
                    {
                        var cliente = await clientesController.Detalhes(carro.IdCliente);

                        if (cliente.Data.TemCarro)
                        {
                            var carroAtual = db.Carros.FirstOrDefault(x => x.IdCliente.Equals(carro.IdCliente));
                            carroAtual.IdMarca = carro.IdMarca;
                            carroAtual.Modelo  = carro.Modelo;
                            carroAtual.Placa   = carro.Placa;
                            carroAtual.Porte   = carro.Porte;
                            var retornoCarro = await Editar(carroAtual);

                            return(new ResponseViewModel <Carro>
                            {
                                Data = null,
                                Sucesso = true,
                                Serializado = true,
                                Mensagem = "Car successfully updated."
                            });
                        }
                        else
                        {
                            cliente.Data.TemCarro = true;

                            var retornoCarro = await Cadastrar(carro);


                            var retornoCliente = await clientesController.Editar(cliente.Data);

                            return(new ResponseViewModel <Carro>
                            {
                                Data = null,
                                Sucesso = true,
                                Serializado = true,
                                Mensagem = "Car successfully registered."
                            });
                        }
                    };
                }
                else
                {
                    return(new ResponseViewModel <Carro>
                    {
                        Data = carro,
                        Sucesso = false,
                        Mensagem = "Error in entity validation."
                    });
                }
            }
            catch (Exception e)
            {
                return(new ResponseViewModel <Carro>()
                {
                    Data = null,
                    Serializado = true,
                    Sucesso = false,
                    Mensagem = "We were unable to fulfill your request: " + e.Message
                });
            }
        }