public ActionResult Authenticate() { Logic.FoursquareOAuth FSQOAuth = new Logic.FoursquareOAuth(null); if (Request["code"] == null) { return Redirect(FSQOAuth.GetAuthURL()); } if (FSQOAuth.makeAuthentication(Request["code"])) { int userId = FSQOAuth.GetUserId(); string lastVenue; try { lastVenue = FSQOAuth.GetLastVenue(); } catch (Exception e) { lastVenue = null; } FoursquareUserContext fsqDBContext = new FoursquareUserContext(); FoursquareUserModel curUser = fsqDBContext.FoursquareUsers.Find(userId); if (curUser != null) { MembershipUser mUser = Membership.GetUser(curUser.UserGuid); curUser.LastVenueID = lastVenue; if (curUser.Token != FSQOAuth.Token) { curUser.Token = FSQOAuth.Token; } UpdateModel(curUser); fsqDBContext.SaveChanges(); FormsAuthentication.SetAuthCookie(mUser.UserName, true); } else { curUser = new FoursquareUserModel(); curUser.FoursquareUserId = userId; curUser.Token = FSQOAuth.Token; string password = Guid.NewGuid().ToString(); MembershipUser mUser; try { mUser = Membership.CreateUser(userId.ToString(), password); } catch (Exception) { mUser = Membership.FindUsersByName(userId.ToString())[userId.ToString()]; } curUser.UserGuid = (Guid)mUser.ProviderUserKey; curUser.UserName = userId.ToString(); curUser.LastVenueID = lastVenue; fsqDBContext.FoursquareUsers.Add(curUser); fsqDBContext.SaveChanges(); FormsAuthentication.SetAuthCookie(curUser.UserName, true); } } return RedirectToAction("Index"); }
public ActionResult Authenticate() { Logic.FoursquareOAuth FSQOAuth = new Logic.FoursquareOAuth(null); if (Request["code"] == null) { return(Redirect(FSQOAuth.GetAuthURL())); } if (FSQOAuth.makeAuthentication(Request["code"])) { int userId = FSQOAuth.GetUserId(); string lastVenue; try { lastVenue = FSQOAuth.GetLastVenue(); } catch (Exception e) { lastVenue = null; } FoursquareUserContext fsqDBContext = new FoursquareUserContext(); FoursquareUserModel curUser = fsqDBContext.FoursquareUsers.Find(userId); if (curUser != null) { MembershipUser mUser = Membership.GetUser(curUser.UserGuid); curUser.LastVenueID = lastVenue; if (curUser.Token != FSQOAuth.Token) { curUser.Token = FSQOAuth.Token; } UpdateModel(curUser); fsqDBContext.SaveChanges(); FormsAuthentication.SetAuthCookie(mUser.UserName, true); } else { curUser = new FoursquareUserModel(); curUser.FoursquareUserId = userId; curUser.Token = FSQOAuth.Token; string password = Guid.NewGuid().ToString(); MembershipUser mUser; try { mUser = Membership.CreateUser(userId.ToString(), password); } catch (Exception) { mUser = Membership.FindUsersByName(userId.ToString())[userId.ToString()]; } curUser.UserGuid = (Guid)mUser.ProviderUserKey; curUser.UserName = userId.ToString(); curUser.LastVenueID = lastVenue; fsqDBContext.FoursquareUsers.Add(curUser); fsqDBContext.SaveChanges(); FormsAuthentication.SetAuthCookie(curUser.UserName, true); } } return(RedirectToAction("Index")); }