public async Task<ActionResult> Index(FacebookContext context)
        {
            if (ModelState.IsValid)
            {
                var user = await context.Client.GetCurrentUserAsync<MyAppUser>();
                return View(user);
            }

            return View("Error");
        }
        public async Task<ActionResult> Index(FacebookContext context)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var user = await context.Client.GetCurrentUserAsync<MyAppUser>();
                    if (user.Location != null)
                        Session["location"] = user.Location.id;

                    Session["picture"] = user.ProfilePicture;
                    Session["user"] = user.Id;

                    MyAppUser Usuario = new MyAppUser();
                    Cidade cidade = new Cidade();
                    string[] acentos = new string[] { "ç", "Ç", "á", "é", "í", "ó", "ú", "ý", "Á", "É", "Í", "Ó", "Ú", "Ý", "à", "è", "ì", "ò", "ù", "À", "È", "Ì", "Ò", "Ù", "ã", "õ", "ñ", "ä", "ë", "ï", "ö", "ü", "ÿ", "Ä", "Ë", "Ï", "Ö", "Ü", "Ã", "Õ", "Ñ", "â", "ê", "î", "ô", "û", "Â", "Ê", "Î", "Ô", "Û" };
                    string[] semAcento = new string[] { "c", "C", "a", "e", "i", "o", "u", "y", "A", "E", "I", "O", "U", "Y", "a", "e", "i", "o", "u", "A", "E", "I", "O", "U", "a", "o", "n", "a", "e", "i", "o", "u", "y", "A", "E", "I", "O", "U", "A", "O", "N", "a", "e", "i", "o", "u", "A", "E", "I", "O", "U" };
                    if (user.Location != null)
                    {
                        string location = user.Location.name;
                        for (int i = 0; i < acentos.Length; i++)
                        {
                            location = location.Replace(acentos[i], semAcento[i]);
                        }
                        cidade = db.Cidades.SingleOrDefault(a => a.cidadeNome.ToString() == location);
                        if (cidade == null)
                        {

                            cidade = new Cidade
                            {
                                cidadeCod = Convert.ToInt64(user.Location.id),
                                cidadeNome = location
                            };

                            db.Cidades.Add(cidade);
                        }
                    }

                    Usuario = db.Usuarios.SingleOrDefault(a => a.Id == user.Id);
                    FacebookPicture fbPic = new FacebookPicture();
                    if (Usuario == null)
                    {
                        fbPic.Usuario = user;
                        fbPic.Url = user.ProfilePicture.Data.Url;

                        if (user.Location != null)
                        {
                            Cidade cdd = new Cidade();
                            cdd = db.Cidades.SingleOrDefault(a => a.cidadeCod.ToString() == user.Location.id.ToString());
                            if (cdd != null)
                                db.Entry(user.Location).State = System.Data.Entity.EntityState.Unchanged;
                        }
                        db.Usuarios.Add(user);
                        db.ProfilePictures.Add(fbPic);
                    }
                    else
                    {
                        fbPic = db.ProfilePictures.SingleOrDefault(b => b.Usuario.Id == Usuario.Id);
                        Usuario.ProfilePicture = new FacebookConnection<FacebookPicture>();
                        Usuario.ProfilePicture.Data = fbPic;
                        string urlatual = user.ProfilePicture.Data.Url;
                        string url = Usuario.ProfilePicture.Data.Url;
                        if (urlatual.Trim() != url.Trim())
                        {
                            fbPic = new FacebookPicture();
                            fbPic.Usuario = new MyAppUser();
                            fbPic.Usuario = Usuario;
                            fbPic.Url = user.ProfilePicture.Data.Url;
                            db.ProfilePictures.Add(fbPic);
                            if (Usuario.ProfilePicture != null)
                                db.ProfilePictures.Remove(Usuario.ProfilePicture.Data);
                        }
                        Usuario.Location = user.Location;
                        Usuario.Email = user.Email;
                        Usuario.Name = user.Name;
                        if (user.Location != null)
                        {
                            Cidade cdd = new Cidade();
                            cdd = db.Cidades.SingleOrDefault(a => a.cidadeCod.ToString() == user.Location.id.ToString());
                            if (cdd != null)
                                db.Entry(user.Location).State = System.Data.Entity.EntityState.Unchanged;
                        }
                    }
                    db.SaveChanges();

                    List<Produto> lstproduto = new List<Produto>();
                    int produtosAPegar = 0;
                    produtosAPegar = Convert.ToInt16(ConfigurationManager.AppSettings["ProdutosAPegar"]);

                    lstproduto = db.Produtos.OrderByDescending(abc => abc.produtoID).Where(adc => adc.Status == 0).Take(produtosAPegar).ToList();
                    return View(lstproduto);
                }
            }
            catch (Exception ex)
            {
                Mail email = new Mail();
                email.Subject = "erro home.index";
                email.Body = " Home.Index(FacebookContext context)" + context + ex.StackTrace + ex.Message;
                if (ex.InnerException != null)
                    email.Body += ex.InnerException.InnerException.Message;
                SendMailerController a = new SendMailerController();
                a.Index(email);
            }
            return View("Error");
        }