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");
        }
Exemplo n.º 2
0
        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"));
        }