/// <summary> /// Return an instance of Podio object /// </summary> /// <returns></returns> public static Podio GetClient() { /* SessionAuthStore is an implementation of PodioAPI.Utils.IAuthStore interface (stores OAuth data in DB) * You can do your own implementation of IAuthStore interface if you need to store access token in database or whereever, * and pass it in when you initialize Podio class */ var dbAuthStore = new DbOAuthTokenStore(); var podio = new Podio(ClientId, ClientSecret, dbAuthStore); if (HttpContext.Current.Session["UserId"] != null) { // If a userId is found in session, get the Sored token from database and set it to Podio object. var podioAuthData = new PodioOAuthData(); var currentUserId = int.Parse(HttpContext.Current.Session["UserId"].ToString()); var data = podioAuthData.GetbyUserId(currentUserId); if (data != null) { var podioOAuthObject = JsonConvert.DeserializeObject <PodioOAuth>(data.OAuthJsonData); podio.OAuth = podioOAuthObject; } } return(podio); }
//Store the PodioOAuth object in the db public void Set(PodioOAuth podioOAuth) { var jsonData = JsonConvert.SerializeObject(podioOAuth); var podioOAuthData = new PodioOAuthData { UserId = (int)podioOAuth.Ref.Id, OAuthJsonData = jsonData }; podioOAuthData.Upsert(); }