public ActionResult Carro()
        {
            CarroCliente carroCliente = new CarroCliente();

            ViewBag.Status = "";
            CarroRetorno retorno = new CarroRetorno();
            Usuario      usuario = new Usuario();
            var          task    = Task.Run(async() => {
                token_ = await GetToken();

                using (BaseController <CarroRetorno> bCarro = new BaseController <CarroRetorno>())
                {
                    var valorRetorno = await bCarro.GetObjectAsyncWithToken("Carros/BuscarCarroCliente/" + GetIdPessoa(), token_);
                    retorno          = valorRetorno.Data;
                }
                using (BaseController <Usuario> bUsuario = new BaseController <Usuario>())
                {
                    var valorRetorno = await bUsuario.GetObjectAsyncWithToken("Usuarios/Detalhes/" + GetIdUsuario(), token_);
                    usuario          = valorRetorno.Data;
                }
            });

            task.Wait();

            if (retorno != null && retorno.IdMarca > 0)
            {
                carroCliente = new CarroCliente
                {
                    IdMarca = retorno.IdMarca,
                    Modelo  = retorno.Modelo,
                    Placa   = retorno.Placa,
                    Porte   = retorno.Porte
                };
                ViewBag.Status = "Update";
            }
            else
            {
                ViewBag.Status = "Register";
            }
            ViewBag.Cadastrar     = "You need to register a car. click here.";
            ViewBag.Nickname      = retorno.Nome;
            ViewBag.InsereAlerta  = retorno.Alerta;
            ViewBag.InsereAlerta2 = false;
            ViewBag.InsereAlerta3 = false;
            ViewBag.Level         = retorno.Level;
            ViewData["foto"]      = usuario.Foto;

            ViewBag.Marcas = Helpers.GetSelectList("Marcas", token_) as SelectList;
            return(View(carroCliente));
        }
        public ActionResult Carro()
        {
            CarroCliente carroCliente = new CarroCliente();

            ViewBag.Status = "";
            CarroRetorno retorno = new CarroRetorno();
            var          task    = Task.Run(async() => {
                token_ = await GetToken();

                using (BaseController <CarroRetorno> bCarro = new BaseController <CarroRetorno>())
                {
                    var valorRetorno = await bCarro.GetObjectAsyncWithToken("Carros/BuscarCarroCliente/" + GetIdPessoa(), token_);
                    retorno          = valorRetorno.Data;
                }
            });

            task.Wait();

            if (retorno != null && retorno.IdMarca > 0)
            {
                carroCliente = new CarroCliente
                {
                    IdMarca = retorno.IdMarca,
                    Modelo  = retorno.Modelo,
                    Placa   = retorno.Placa,
                    Porte   = retorno.Porte
                };
                ViewBag.Status = "Atualizar";
            }
            else
            {
                ViewBag.Status = "Cadastrar";
            }
            ViewBag.Nickname      = retorno.Nome;
            ViewBag.InsereAlerta  = retorno.Alerta;
            ViewBag.InsereAlerta2 = false;
            ViewBag.InsereAlerta3 = false;
            ViewBag.Level         = retorno.Level;

            ViewBag.Marcas = Helpers.GetSelectList("Marcas", token_) as SelectList;
            return(View(carroCliente));
        }
        public async Task <ResponseViewModel <CarroRetorno> > BuscarCarroCliente(int?id)
        {
            try
            {
                CarroRetorno carroRetorno = new CarroRetorno();
                Carro        entidade     = db.Carros.FirstOrDefault(x => x.IdCliente == id);
                if (entidade == null)
                {
                    entidade = new Carro();
                }

                entidade.Cliente     = db.Clientes.Find(id);
                carroRetorno.IdMarca = entidade.IdMarca;
                carroRetorno.Level   = 2;
                carroRetorno.Modelo  = entidade.Modelo;
                carroRetorno.Nome    = entidade.Cliente.Nome;
                carroRetorno.Placa   = entidade.Placa;
                carroRetorno.Porte   = entidade.Porte;
                carroRetorno.Alerta  = !entidade.Cliente.TemCarro;

                return(new ResponseViewModel <CarroRetorno>()
                {
                    Data = carroRetorno,
                    Serializado = true,
                    Sucesso = true,
                    Mensagem = "Search carried out successfully."
                });
            }
            catch (Exception e)
            {
                return(new ResponseViewModel <CarroRetorno>()
                {
                    Data = null,
                    Serializado = true,
                    Sucesso = false,
                    Mensagem = "We were unable to fulfill your request: " + e.Message
                });
            }
        }
        public async Task <ResponseViewModel <CarroRetorno> > BuscarCarroCliente(int?id)
        {
            try
            {
                CarroRetorno carroRetorno = new CarroRetorno();
                Carro        entidade     = db.Carros.FirstOrDefault(x => x.IdCliente == id);
                if (entidade == null)
                {
                    entidade = new Carro();
                }

                entidade.Cliente     = db.Clientes.Find(id);
                carroRetorno.IdMarca = entidade.IdMarca;
                carroRetorno.Level   = 2;
                carroRetorno.Modelo  = entidade.Modelo;
                carroRetorno.Nome    = entidade.Cliente.Nome;
                carroRetorno.Placa   = entidade.Placa;
                carroRetorno.Porte   = entidade.Porte;
                carroRetorno.Alerta  = !entidade.Cliente.TemCarro;

                return(new ResponseViewModel <CarroRetorno>()
                {
                    Data = carroRetorno,
                    Serializado = true,
                    Sucesso = true,
                    Mensagem = "Busca realizada com sucesso"
                });
            }
            catch (Exception e)
            {
                return(new ResponseViewModel <CarroRetorno>()
                {
                    Data = null,
                    Serializado = true,
                    Sucesso = false,
                    Mensagem = "Não foi possivel atender a sua solicitação: " + e.Message
                });
            }
        }