protected void Page_Load(object sender, EventArgs e) { oAuthTokenGa obj = new oAuthTokenGa(); Accounts objAcc = new Accounts(); Analytics objAlyt = new Analytics(); User user = (User)Session["LoggedUser"]; if (!IsPostBack) { if (Session["login"] == null) { if (user == null) { Response.Redirect("Default.aspx"); } } try { string strRefresh = obj.GetRefreshToken(Request.QueryString["code"].ToString()); if (!strRefresh.StartsWith("[")) strRefresh = "[" + strRefresh + "]"; JArray objArray = JArray.Parse(strRefresh); GoogleAnalyticsAccount objGaAcc = new GoogleAnalyticsAccount(); GoogleAnalyticsAccountRepository objGaAccRepo = new GoogleAnalyticsAccountRepository(); GanalyticsHelper objGaHelper=new GanalyticsHelper(); SocialProfilesRepository socioprofilerepo = new SocialProfilesRepository(); SocialProfile socioprofile = new SocialProfile(); foreach (var item in objArray) { DataSet dsAccount = objAcc.getGaAccounts(item["access_token"].ToString()); objGaAcc.RefreshToken = item["refresh_token"].ToString(); objGaAcc.AccessToken = item["access_token"].ToString(); objGaAcc.EmailId = dsAccount.Tables["title"].Rows[0]["title_Text"].ToString(); objGaAcc.EntryDate = DateTime.Now; objGaAcc.GaAccountId = dsAccount.Tables["property"].Rows[0]["value"].ToString(); objGaAcc.GaAccountName = dsAccount.Tables["property"].Rows[1]["value"].ToString(); objGaAcc.Id = Guid.NewGuid(); objGaAcc.IsActive = true; objGaAcc.UserId = user.Id; DataSet dsProfile = objAcc.getGaProfiles(item["access_token"].ToString(), objGaAcc.GaAccountId); int profileCount = dsProfile.Tables["property"].Select("name='ga:profileId'").Length; string[,] names =new string[profileCount,2]; int tempCount = 0; foreach (DataRow dRow in dsProfile.Tables["property"].Rows) { //if (dRow["name"].Equals("ga:profileId") || dRow["name"].Equals("ga:profileName")) { if (dRow["name"].Equals("ga:profileId")) { objGaAcc.GaProfileId = dRow["value"].ToString(); names[tempCount, 0] = dRow["value"].ToString(); } if (dRow["name"].Equals("ga:profileName")) { names[tempCount, 1] = dRow["value"].ToString(); objGaAcc.GaProfileName = dRow["value"].ToString(); } if (tempCount>=profileCount) { break; } if (names[tempCount, 0] != null && names[tempCount, 1] != null) { tempCount++; } } } socioprofile.Id = Guid.NewGuid(); socioprofile.ProfileDate = DateTime.Now; socioprofile.ProfileId = objGaAcc.GaAccountId; socioprofile.ProfileType = "googleanalytics"; socioprofile.UserId = user.Id; if (!objGaAccRepo.checkGoogelAnalyticsUserExists(objGaAcc.GaAccountId, user.Id)) { for (int i = 0; i < profileCount; i++) { objGaAcc.GaProfileId = names[i,0]; objGaAcc.GaProfileName = names[i,1]; if(!objGaAccRepo.checkGoogelAnalyticsProfileExists(objGaAcc.GaAccountId,objGaAcc.GaProfileId,user.Id)) objGaAccRepo.addGoogleAnalyticsUser(objGaAcc); else objGaAccRepo.updateGoogelAnalyticsUser(objGaAcc); objGaHelper.getCountryAnalyticsApi(objGaAcc.GaProfileId,user.Id); objGaHelper.getYearWiseAnalyticsApi(objGaAcc.GaProfileId, user.Id); objGaHelper.getMonthWiseAnalyticsApi(objGaAcc.GaProfileId, user.Id); objGaHelper.getDayWiseAnalyticsApi(objGaAcc.GaProfileId, user.Id); } if (!socioprofilerepo.checkUserProfileExist(socioprofile)) { socioprofilerepo.addNewProfileForUser(socioprofile); } else { socioprofilerepo.updateSocialProfile(socioprofile); } } else { //objGaAccRepo.updateGoogelAnalyticsUser(objGaAcc); for (int i = 0; i < names.Length; i++) { objGaAcc.GaProfileId = names[i,0]; objGaAcc.GaProfileName = names[i,1]; if(!objGaAccRepo.checkGoogelAnalyticsProfileExists(objGaAcc.GaAccountId,objGaAcc.GaProfileId,user.Id)) objGaAccRepo.addGoogleAnalyticsUser(objGaAcc); else objGaAccRepo.updateGoogelAnalyticsUser(objGaAcc); } if (!socioprofilerepo.checkUserProfileExist(socioprofile)) { socioprofilerepo.addNewProfileForUser(socioprofile); } else { socioprofilerepo.updateSocialProfile(socioprofile); } } Response.Redirect("Home.aspx"); } } catch (Exception Err) { logger.Error(Err.StackTrace); try { Response.Redirect("/Home.aspx"); } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } } } }
public string GetAnalyticsProfile(string code) { Domain.Socioboard.Helper.GoogleAnalyticsProfiles _GoogleAnalyticsProfiles; List<Domain.Socioboard.Helper.GoogleAnalyticsProfiles> lstGoogleAnalyticsProfiles = new List<Domain.Socioboard.Helper.GoogleAnalyticsProfiles>(); string access_token = string.Empty; string refresh_token = string.Empty; Accounts _Accounts = new Accounts(); try { oAuthTokenGa objToken = new oAuthTokenGa(); objToken.ConsumerKey = ConfigurationManager.AppSettings["YtconsumerKey"]; objToken.ConsumerSecret = ConfigurationManager.AppSettings["YtconsumerSecret"]; objToken.RedirectUri = ConfigurationManager.AppSettings["Ytredirect_uri"]; string accessToken = objToken.GetRefreshToken(code); JObject JData = JObject.Parse(accessToken); try { refresh_token = JData["refresh_token"].ToString(); } catch (Exception ex) { access_token = JData["access_token"].ToString(); objToken.RevokeToken(access_token); logger.Error("Refresh Token Not Found = > " + ex.Message); return "Refresh Token Not Found"; } access_token = JData["access_token"].ToString(); string accountsdata = _Accounts.getGaAccounts(access_token); JObject JAccountdata = JObject.Parse(accountsdata); string EmailId = JAccountdata["username"].ToString(); foreach (var item in JAccountdata["items"]) { try { string accountId = item["id"].ToString(); string accountName = item["name"].ToString(); string profileData = _Accounts.getGaProfiles(access_token, accountId); JObject JProfileData = JObject.Parse(profileData); foreach (var item_profile in JProfileData["items"]) { try { _GoogleAnalyticsProfiles = new Domain.Socioboard.Helper.GoogleAnalyticsProfiles(); _GoogleAnalyticsProfiles.AccessToken = access_token; _GoogleAnalyticsProfiles.RefreshToken = refresh_token; _GoogleAnalyticsProfiles.AccountId = accountId; _GoogleAnalyticsProfiles.AccountName = accountName; _GoogleAnalyticsProfiles.EmailId = EmailId; _GoogleAnalyticsProfiles.ProfileId = item_profile["id"].ToString(); _GoogleAnalyticsProfiles.ProfileName = item_profile["name"].ToString(); _GoogleAnalyticsProfiles.WebPropertyId = item_profile["webPropertyId"].ToString(); _GoogleAnalyticsProfiles.WebsiteUrl = item_profile["websiteUrl"].ToString(); lstGoogleAnalyticsProfiles.Add(_GoogleAnalyticsProfiles); } catch (Exception ex) { } } } catch (Exception e) { } } } catch (Exception ex) { logger.Error("GetAnalyticsProfile = > " + ex.Message); } return new JavaScriptSerializer().Serialize(lstGoogleAnalyticsProfiles); }