public ActionResult SaveFbCode() { if (Request.Params.AllKeys.Contains("code")) { var code = Request.Params["code"]; if (ProcessFbCode(code)) { return RedirectToAction("Index"); } } return View("CantInitialize"); } protected bool ProcessFbCode(string code) { if (fbProvider.GetAccessToken(code, "http://" + HostName + "/Social/SaveFbCode")) { var jObj = fbProvider.GetUserInfo(); var fbUserInfo = JsonConvert.DeserializeObject(jObj.ToString()); var fbAccess = new FbAccessToken() { AccessToken = fbProvider.AccessToken }; var jsonFbAccess = JsonConvert.SerializeObject(fbAccess); var fbSocial = currentUser.Socials.Where(p => p.Provider == "facebook").FirstOrDefault(); if (fbSocial == null) { fbSocial = new Models.Social() { UserID = currentUser.ID, JsonResource = jsonFbAccess.ToString(), Provider = "facebook", UserInfo = jObj.ToString() }; repository.CreateSocial(fbSocial); } else { fbSocial.UserInfo = jObj.ToString(); repository.UpdateSocial(fbSocial); } return true; } return false; }