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"); }