protected void Page_Load(object sender, EventArgs e) { curUser = Membership.GetUser(); if (Request.PathInfo.StartsWith("/twitter/")) { var oauth = new OAuthConsumer(); var requestToken = (RequestToken)Session["TwitterToken"]; string verifier = Request.QueryString["oauth_verifier"]; string tokenSecret = Request.QueryString["oauth_token"]; AccessToken accessToken = oauth.GetOAuthAccessToken(appSettings["Twitter_AccessURL"], appSettings["Twitter_Realm"], appSettings["Twitter_ConsumerKey"], appSettings["Twitter_ConsumerSecret"], tokenSecret, verifier, requestToken.Token); string curUserId = curUser.ProviderUserKey.ToString(); var oAuthParams = new OAuthParameters(appSettings["Twitter_ConsumerKey"], appSettings["Twitter_ConsumerSecret"], appSettings["Twitter_Realm"], accessToken.Token, accessToken.TokenSecret); Func<OAuthParameters> OAuthDirect = () => oAuthParams; var account = new AccountClient(OAuthDirect); var tUser = Json.Deserialize<Bridgeport.TwitterAPI.User>(account.VerifyCredentials().Data); using (var db = new Data.ToketeeData().Context) { var q = from u in db.User where u.UserId == curUserId select u; if (q.Any()) // User does not exist { var user = new Data.Entities.User() { UserId = curUserId, }; var twitterUser = new TwitterData.TwitterUser() { rUser = user, Token = accessToken.Token, Secret = accessToken.TokenSecret, AuthAttemptCount = 0, AuthStatus = 1, AppUser = true, AuthTime = DateTime.Now.ToUniversalTime() }; UserOps.UserObjToTwitterUser(tUser, twitterUser); db.User.Add(user); db.TwitterUser.Add(twitterUser); } else // User exists { var qry = q.Single(); TwitterData.TwitterUser tu; if (qry.TwitterUsers.Count() != 0) // Twitter user exists { var q2 = from u in qry.TwitterUsers where u.Id == long.Parse(tUser.Id) select u; tu = q2.Single(); } else { tu = new TwitterData.TwitterUser() { rUser = qry }; db.TwitterUser.Add(tu); } tu.Token = accessToken.Token; tu.Secret = accessToken.TokenSecret; tu.AuthAttemptCount = 0; tu.AuthStatus = 1; tu.AppUser = true; tu.AuthTime = DateTime.Now.ToUniversalTime(); UserOps.UserObjToTwitterUser(tUser, tu); } db.SaveChanges(); } } }