Example #1
0
 /// <summary>
 /// Sequence:
 /// -->Retrieve the Request token
 /// -->Retrieve the value from query string
 /// -->Retrieve acces token
 /// -->Retrieve acces secret
 /// -->Redirect to close
 /// </summary>
 /// <returns></returns>
 public ActionResult Response()
 {
     oAuthorizationDB  = new OAuthTokens();
     oAuthService      = new OAuthService(oAuthorizationdto);
     oAuthorizationdto = oAuthService.GetRequestToken(this);
     if (Request.QueryString.HasKeys())
     {
         oAuthorizationdto.OauthVerifyer = Request.QueryString["oauth_verifier"].ToString();
         oAuthorizationDB.realmid        = Request.QueryString["realmId"].ToString();
         oAuthorizationdto.Realmid       = oAuthorizationDB.realmid;
         oAuthorizationDB.datasource     = Request.QueryString["dataSource"].ToString();
         oAuthorizationdto.DataSource    = oAuthorizationDB.datasource;
         oAuthorizationdto = oAuthService.GetAccessTokenFromServer(this, oAuthorizationdto);
         //encrypt the tokens
         oAuthorizationDB.access_secret = Utility.Encrypt(oAuthorizationdto.AccessTokenSecret, oAuthorizationdto.SecurityKey);
         oAuthorizationDB.access_token  = Utility.Encrypt(oAuthorizationdto.AccessToken, oAuthorizationdto.SecurityKey);
         using (var oAuthorizationDBContext = new OAuthdataContext("DBContext"))
         {
             //store the encrypted tokens to DB.
             oAuthorizationDBContext.Tokens.Add(oAuthorizationDB);
             oAuthorizationDBContext.SaveChanges();
         }
     }
     return(RedirectToAction("Close", "Home"));
 }
        /// <summary>
        /// This function checks whether the token is present.
        /// </summary>
        /// <param name="oauthController"></param>
        /// <returns></returns>
        public OAuthorizationdto IsTokenAvailable(object oauthController)
        {
            var oAuthDetails = new OAuthorizationdto();

            using (var db = new OAuthdataContext("DBContext"))
            {
                foreach (var currentIndex in db.Tokens)
                {
                    oAuthDetails.Realmid = currentIndex.realmid.ToString();
                    string testAccesToken       = Utility.Decrypt(currentIndex.access_token, oAuthDetails.SecurityKey);
                    string testAccesTokenSecret = Utility.Decrypt(currentIndex.access_secret, oAuthDetails.SecurityKey);
                    oAuthDetails.AccessToken       = testAccesToken;
                    oAuthDetails.AccessTokenSecret = testAccesTokenSecret;
                    oAuthDetails.IsConnected       = true;
                    oAuthDetails.DataSource        = currentIndex.datasource;
                    oAuthRepository.Save(oauthController, oAuthDetails);
                }
            }
            return(oAuthDetails);
        }