public IActionResult RecGoogleAccount(string code, long userId) { string ret = string.Empty; string objRefresh = string.Empty; string refreshToken = string.Empty; string access_token = string.Empty; DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); oAuthToken objToken = new oAuthToken(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); JObject userinfo = new JObject(); try { objRefresh = ObjoAuthTokenGPlus.GetRefreshToken(code); JObject objaccesstoken = JObject.Parse(objRefresh); _logger.LogInformation(objaccesstoken.ToString()); try { refreshToken = objaccesstoken["refresh_token"].ToString(); } catch { } access_token = objaccesstoken["access_token"].ToString(); string user = objToken.GetUserInfo("self", access_token.ToString()); //_logger.LogInformation(user); userinfo = JObject.Parse(JArray.Parse(user)[0].ToString()); string people = objToken.GetPeopleInfo("self", access_token.ToString(), Convert.ToString(userinfo["id"])); userinfo = JObject.Parse(JArray.Parse(people)[0].ToString()); } catch (Exception ex) { //access_token = objaccesstoken["access_token"].ToString(); //ObjoAuthTokenGPlus.RevokeToken(access_token); _logger.LogInformation(ex.Message); _logger.LogError(ex.StackTrace); ret = "Access Token Not Found"; return(Ok(ret)); } Domain.Socioboard.Models.Googleplusaccounts gplusAcc = Api.Socioboard.Repositories.GplusRepository.getGPlusAccount(Convert.ToString(userinfo["id"]), _redisCache, dbr); if (gplusAcc != null && gplusAcc.IsActive == true) { if (gplusAcc.UserId == userId) { } //return BadRequest("GPlus account added by other user."); } // Adding GPlus Profile int x = Api.Socioboard.Repositories.GplusRepository.ReconnectGplusAccount(userinfo, dbr, userId, access_token, refreshToken, _redisCache, _appSettings, _logger); if (x == 1) { return(Ok("Gplus Account Reconnect Successfully")); } else { return(BadRequest("Issues while adding account")); } }
public IActionResult AddGoogleAccountPhone(string refreshToken, string accessToken, long groupId, long userId) { var ret = string.Empty; var objRefresh = string.Empty; var dbr = new DatabaseRepository(_logger, _appEnv); var ObjoAuthTokenGPlus = new oAuthTokenGPlus(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); var objToken = new oAuthToken(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); var userinfo = new JObject(); try { var user = objToken.GetUserInfo("self", accessToken); //_logger.LogInformation(user); userinfo = JObject.Parse(JArray.Parse(user)[0].ToString()); var people = objToken.GetPeopleInfo("self", accessToken, Convert.ToString(userinfo["id"])); userinfo = JObject.Parse(JArray.Parse(people)[0].ToString()); } catch (Exception ex) { _logger.LogInformation(ex.Message); _logger.LogError(ex.StackTrace); ret = "Access Token Not Found"; return(Ok(ret)); } var gplusAcc = GplusRepository.getGPlusAccount(Convert.ToString(userinfo["id"]), _redisCache, dbr); if (gplusAcc != null && gplusAcc.IsActive) { if (gplusAcc.UserId == userId) { return(BadRequest("GPlus account already added by you.")); } return(BadRequest("GPlus account added by other user.")); } var ngrp = dbr.Find <Groups>(t => t.adminId == userId && t.id == groupId).FirstOrDefault(); if (ngrp == null) { return(Ok("group not exist")); } // Adding GPlus Profile var x = GplusRepository.AddGplusAccount(userinfo, dbr, userId, ngrp.id, accessToken, refreshToken, _redisCache, _appSettings, _logger); if (x == 1) { return(Ok("Gplus Account Added Successfully")); } return(BadRequest("Issues while adding account")); }
public void UpadateGoogleAnalyticsAccount() { while (true) { try { Helper.DatabaseRepository dbr = new Helper.DatabaseRepository(); oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(AppSettings.GoogleConsumerKey, AppSettings.GoogleConsumerSecret, AppSettings.GoogleRedirectUri); Analytics _Analytics = new Analytics(AppSettings.GoogleConsumerKey, AppSettings.GoogleConsumerSecret, AppSettings.GoogleRedirectUri); List <Domain.Socioboard.Models.GoogleAnalyticsAccount> lstTwtAccounts = dbr.Find <Domain.Socioboard.Models.GoogleAnalyticsAccount>(t => t.IsActive).ToList(); foreach (var item in lstTwtAccounts) { try { if (item.LastUpdate.AddHours(1) <= DateTime.UtcNow) { if (item.IsActive) { try { string objRefresh = ObjoAuthTokenGPlus.GetAccessToken(item.RefreshToken); JObject objaccesstoken = JObject.Parse(objRefresh); string access_token = objaccesstoken["access_token"].ToString(); string analytics = _Analytics.getAnalyticsData(item.GaProfileId, "ga:visits,ga:pageviews", DateTime.UtcNow.AddDays(-7).ToString("yyyy-MM-dd"), DateTime.UtcNow.ToString("yyyy-MM-dd"), access_token); JObject JData = JObject.Parse(analytics); string visits = JData["totalsForAllResults"]["ga:visits"].ToString(); string pageviews = JData["totalsForAllResults"]["ga:pageviews"].ToString(); item.Views = Double.Parse(pageviews); item.Visits = Double.Parse(visits); item.LastUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.GoogleAnalyticsAccount>(item); } catch (Exception ex) { Thread.Sleep(600000); } } } } catch (Exception) { Thread.Sleep(600000); } Thread.Sleep(600000); } } catch { } } }
public void UpadateGoogleAnalyticsAccount() { while (true) { try { Helper.DatabaseRepository dbr = new Helper.DatabaseRepository(); oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus("246221405801-5sg3n6bfpj329ie7tiqfdnb404pc78ea.apps.googleusercontent.com", "S5B4EtNKIe-1yHq4xEtXHCHK", "https://www.socioboard.com/GoogleManager/Google"); Analytics _Analytics = new Analytics("246221405801-5sg3n6bfpj329ie7tiqfdnb404pc78ea.apps.googleusercontent.com", "S5B4EtNKIe-1yHq4xEtXHCHK", "https://www.socioboard.com/GoogleManager/Google"); List <Domain.Socioboard.Models.GoogleAnalyticsAccount> lstTwtAccounts = dbr.Find <Domain.Socioboard.Models.GoogleAnalyticsAccount>(t => t.IsActive).ToList(); foreach (var item in lstTwtAccounts) { try { if (item.LastUpdate.AddHours(1) <= DateTime.UtcNow) { if (item.IsActive) { try { string objRefresh = ObjoAuthTokenGPlus.GetAccessToken(item.RefreshToken); JObject objaccesstoken = JObject.Parse(objRefresh); string access_token = objaccesstoken["access_token"].ToString(); string analytics = _Analytics.getAnalyticsData(item.GaProfileId, "ga:visits,ga:pageviews", DateTime.UtcNow.AddDays(-7).ToString("yyyy-MM-dd"), DateTime.UtcNow.ToString("yyyy-MM-dd"), access_token); JObject JData = JObject.Parse(analytics); string visits = JData["totalsForAllResults"]["ga:visits"].ToString(); string pageviews = JData["totalsForAllResults"]["ga:pageviews"].ToString(); item.Views = Double.Parse(pageviews); item.Visits = Double.Parse(visits); item.LastUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.GoogleAnalyticsAccount>(item); } catch (Exception ex) { Thread.Sleep(600000); } } } } catch (Exception) { Thread.Sleep(600000); } Thread.Sleep(600000); } } catch { } } }
private int UpdateGooglePlusFeeds(Googleplusaccounts googlePlusAccount, oAuthTokenGPlus objoAuthTokenGPlus, oAuthToken objToken) { var databaseRepository = new DatabaseRepository(); if (googlePlusAccount.LastUpdate.AddHours(1) <= DateTime.UtcNow) { if (!googlePlusAccount.IsActive) { return(0); } ParseAndUpdateGoogleAccountDetails(googlePlusAccount, databaseRepository, objoAuthTokenGPlus, objToken); ParseAndUpdateGoogleAccountFeeds(googlePlusAccount, objoAuthTokenGPlus, objToken); } return(0); }
public static void GetGooglePlusComments(string feedId, string AccessToken, string profileId, Helper.AppSettings settings, ILogger _logger) { MongoRepository gplusCommentRepo = new MongoRepository("GoogleplusComments", settings); oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(settings.GoogleConsumerKey, settings.GoogleConsumerSecret, settings.GoogleRedirectUri); MongoGoogleplusComments _GoogleplusComments = new MongoGoogleplusComments(); try { string _Comments = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetCommentListByActivityId.Replace("[ActivityId]", feedId) + "?key=" + settings.GoogleApiKey, AccessToken); JObject J_Comments = JObject.Parse(_Comments); List <MongoGoogleplusComments> lstGoogleplusComments = new List <MongoGoogleplusComments>(); foreach (var item in J_Comments["items"]) { try { _GoogleplusComments.Id = ObjectId.GenerateNewId(); _GoogleplusComments.Comment = item["object"]["content"].ToString(); _GoogleplusComments.CommentId = item["id"].ToString(); _GoogleplusComments.CreatedDate = Convert.ToDateTime(item["published"]).ToString("yyyy/MM/dd HH:mm:ss"); _GoogleplusComments.FeedId = feedId; _GoogleplusComments.FromId = item["actor"]["id"].ToString(); _GoogleplusComments.FromImageUrl = item["actor"]["image"]["url"].ToString(); _GoogleplusComments.FromName = item["actor"]["url"].ToString(); _GoogleplusComments.FromUrl = item["actor"]["url"].ToString(); _GoogleplusComments.GplusUserId = profileId; lstGoogleplusComments.Add(_GoogleplusComments); //if (!objGoogleplusCommentsRepository.IsExist(_GoogleplusComments.CommentId)) //{ // objGoogleplusCommentsRepository.Add(_GoogleplusComments); //} } catch (Exception ex) { _logger.LogError(ex.Message); } } gplusCommentRepo.AddList(lstGoogleplusComments); } catch (Exception ex) { } }
public void GetGooglePlusComments(string feedId, string AccessToken, string profileId) { oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(); Domain.Socioboard.MongoDomain.GoogleplusComments _GoogleplusComments = new Domain.Socioboard.MongoDomain.GoogleplusComments(); try { string _Comments = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetCommentListByActivityId.Replace("[ActivityId]", feedId) + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), AccessToken); JObject J_Comments = JObject.Parse(_Comments); List <Domain.Socioboard.MongoDomain.GoogleplusComments> lstGoogleplusComments = new List <Domain.Socioboard.MongoDomain.GoogleplusComments>(); foreach (var item in J_Comments["items"]) { try { _GoogleplusComments.Id = ObjectId.GenerateNewId(); _GoogleplusComments.Comment = item["object"]["content"].ToString(); _GoogleplusComments.CommentId = item["id"].ToString(); _GoogleplusComments.CreatedDate = Convert.ToDateTime(item["published"]).ToString("yyyy/MM/dd HH:mm:ss"); _GoogleplusComments.FeedId = feedId; _GoogleplusComments.FromId = item["actor"]["id"].ToString(); _GoogleplusComments.FromImageUrl = item["actor"]["image"]["url"].ToString(); _GoogleplusComments.FromName = item["actor"]["url"].ToString(); _GoogleplusComments.FromUrl = item["actor"]["url"].ToString(); _GoogleplusComments.GplusUserId = profileId; lstGoogleplusComments.Add(_GoogleplusComments); //if (!objGoogleplusCommentsRepository.IsExist(_GoogleplusComments.CommentId)) //{ // objGoogleplusCommentsRepository.Add(_GoogleplusComments); //} } catch (Exception ex) { logger.Error(ex.Message); } } gplusCommentRepo.AddList(lstGoogleplusComments); } catch (Exception ex) { } }
public void GetGoogleplusCircles(string UserId, string ProfileId) { try { Domain.Socioboard.Domain.GooglePlusAccount _GooglePlusAccount = objGooglePlusAccountRepository.GetGooglePlusAccount(Guid.Parse(UserId), ProfileId); oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(); oAuthToken objToken = new oAuthToken(); #region Get_InYourCircles try { string _InyourCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", _GooglePlusAccount.GpUserId).Replace("[collection]", "visible") + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), _GooglePlusAccount.AccessToken); JObject J_InyourCircles = JObject.Parse(_InyourCircles); _GooglePlusAccount.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString()); } catch (Exception ex) { _GooglePlusAccount.InYourCircles = 0; } #endregion #region Get_HaveYouInCircles try { string _HaveYouInCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + _GooglePlusAccount.GpUserId + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), _GooglePlusAccount.AccessToken); JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles); _GooglePlusAccount.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString()); } catch (Exception ex) { _GooglePlusAccount.HaveYouInCircles = 0; } #endregion objGooglePlusAccountRepository.UpdateGooglePlusAccount(_GooglePlusAccount); } catch (Exception ex) { logger.Error(ex.Message); } }
public string GetGPusData(string UserId, string ProfileId) { Domain.Socioboard.Domain.GooglePlusAccount _GooglePlusAccount = objGooglePlusAccountRepository.GetGooglePlusAccount(Guid.Parse(UserId), ProfileId); //oAuthToken objToken = new oAuthToken(); oAuthTokenGPlus objToken = new oAuthTokenGPlus(); string finalToken = string.Empty; string finaltoken = objToken.GetAccessToken(_GooglePlusAccount.RefreshToken); try { JObject objArray = JObject.Parse(finaltoken); finalToken = objArray["access_token"].ToString(); GetGoogleplusCircles(UserId, ProfileId, finalToken); GetUserActivities(_GooglePlusAccount.UserId.ToString(), _GooglePlusAccount.GpUserId, finalToken, 0); // break; } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } return("Gplus Account Updated Successfully"); }
public void GetGooglePlusLikes(string feedId, string AccessToken, string ProfileId, int Status) { oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(); Domain.Socioboard.Domain.GoogleplusLike _GoogleplusLike = new Domain.Socioboard.Domain.GoogleplusLike(); try { string _Likes = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strLike.Replace("[ActivityId]", feedId) + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), AccessToken); JObject J_Likes = JObject.Parse(_Likes); foreach (var item in J_Likes["items"]) { try { _GoogleplusLike.Id = Guid.NewGuid(); _GoogleplusLike.FromId = item["id"].ToString(); _GoogleplusLike.FromImageUrl = item["image"]["url"].ToString(); _GoogleplusLike.FromName = item["displayName"].ToString(); _GoogleplusLike.ProfileId = ProfileId; _GoogleplusLike.FromUrl = item["url"].ToString(); _GoogleplusLike.FeedId = feedId; if (!objGoogleplusCommentsRepository.IsLikeExist(_GoogleplusLike.FromId, feedId)) { objGoogleplusCommentsRepository.AddLikes(_GoogleplusLike); } } catch (Exception ex) { logger.Error(ex.Message); } } } catch (Exception ex) { } }
public void StartUpdateAccountDetails() { try { DataServicesBase.ActivityRunningStatus.AddOrUpdate(ServiceDetails.GooglePlusUpdateDetails, true, (enumType, runningStatus) => true); var googleAccounts = GetGooglePlusAccounts(); var objoAuthTokenGPlus = new oAuthTokenGPlus(AppSettings.googleClientId, AppSettings.googleClientSecret, AppSettings.googleRedirectionUrl); var objToken = new oAuthToken(AppSettings.googleClientId, AppSettings.googleClientSecret, AppSettings.googleRedirectionUrl); Parallel.ForEach(googleAccounts, new ParallelOptions { MaxDegreeOfParallelism = 20 }, gPlusAccount => { UpdateGooglePlusFeeds(gPlusAccount, objoAuthTokenGPlus, objToken); }); DataServicesBase.ActivityRunningStatus.AddOrUpdate(ServiceDetails.GooglePlusUpdateDetails, true, (enumType, runningStatus) => false); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
private void ParseAndUpdateGoogleAccountDetails(Googleplusaccounts googlePlusAccount, DatabaseRepository databaseRepository, oAuthTokenGPlus objoAuthTokenGPlus, oAuthToken objToken) { try { string objRefresh = objoAuthTokenGPlus.GetAccessToken(googlePlusAccount.RefreshToken); JObject objaccesstoken = JObject.Parse(objRefresh); string access_token = objaccesstoken.SelectToken("access_token")?.ToString(); string user = objToken.GetUserInfo("self", access_token); JObject userinfo = JObject.Parse(JArray.Parse(user)[0].ToString()); string people = objToken.GetPeopleInfo("self", access_token, googlePlusAccount.GpUserId); userinfo = JObject.Parse(JArray.Parse(people)[0].ToString()); googlePlusAccount.GpUserName = userinfo.SelectToken("displayName")?.ToString() ?? userinfo.SelectToken("name")?.ToString(); googlePlusAccount.GpProfileImage = userinfo.SelectToken("image.url")?.ToString() ?? userinfo.SelectToken("picture")?.ToString(); googlePlusAccount.about = userinfo.SelectToken("tagline")?.ToString() ?? googlePlusAccount.about; googlePlusAccount.college = userinfo.SelectTokens("organizations").FirstOrDefault()?.SelectToken("name")?.ToString() ?? googlePlusAccount.college; googlePlusAccount.coverPic = userinfo.SelectToken("cover.coverPhoto.url")?.ToString() ?? googlePlusAccount.coverPic; googlePlusAccount.education = userinfo.SelectTokens("organizations").FirstOrDefault()?.SelectToken("type")?.ToString() ?? googlePlusAccount.education; googlePlusAccount.EmailId = userinfo.SelectTokens("emails").FirstOrDefault()?.SelectToken("value")?.ToString() ?? googlePlusAccount.EmailId; googlePlusAccount.gender = userinfo.SelectToken("gender")?.ToString() ?? googlePlusAccount.gender; googlePlusAccount.workPosition = userinfo.SelectToken("occupation")?.ToString() ?? googlePlusAccount.workPosition; googlePlusAccount.LastUpdate = DateTime.UtcNow; databaseRepository.Update(googlePlusAccount); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public void GetUserActivities(string UserId, string ProfileId, string AcessToken) { oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(); try { Domain.Socioboard.Domain.GooglePlusActivities _GooglePlusActivities = null; string _Activities = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetActivitiesList.Replace("[ProfileId]", ProfileId) + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), AcessToken); JObject J_Activities = JObject.Parse(_Activities); foreach (var item in J_Activities["items"]) { _GooglePlusActivities = new Domain.Socioboard.Domain.GooglePlusActivities(); _GooglePlusActivities.Id = Guid.NewGuid(); _GooglePlusActivities.UserId = Guid.Parse(UserId); _GooglePlusActivities.GpUserId = ProfileId; try { _GooglePlusActivities.FromUserName = item["actor"]["displayName"].ToString(); } catch { } try { _GooglePlusActivities.FromId = item["actor"]["id"].ToString(); } catch { } try { _GooglePlusActivities.ActivityId = item["id"].ToString(); } catch { } try { _GooglePlusActivities.ActivityUrl = item["url"].ToString(); } catch { } try { _GooglePlusActivities.Title = item["title"].ToString(); } catch { } _GooglePlusActivities.EntryDate = DateTime.Now; try { _GooglePlusActivities.FromProfileImage = item["actor"]["image"]["url"].ToString(); } catch { } try { _GooglePlusActivities.Content = item["object"]["content"].ToString(); } catch { } try { _GooglePlusActivities.PublishedDate = Convert.ToDateTime(item["published"].ToString()); } catch { } try { _GooglePlusActivities.PlusonersCount = Convert.ToInt32(item["object"]["plusoners"]["totalItems"].ToString()); } catch { } try { _GooglePlusActivities.RepliesCount = Convert.ToInt32(item["object"]["replies"]["totalItems"].ToString()); } catch { } try { _GooglePlusActivities.ResharersCount = Convert.ToInt32(item["object"]["resharers"]["totalItems"].ToString()); } catch { } try { _GooglePlusActivities.AttachmentType = item["object"]["attachments"][0]["objectType"].ToString(); if (_GooglePlusActivities.AttachmentType == "video") { _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["embed"]["url"].ToString(); } else if (_GooglePlusActivities.AttachmentType == "photo") { _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["image"]["url"].ToString(); } else if (_GooglePlusActivities.AttachmentType == "article") { try { _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["image"]["url"].ToString(); } catch { } try { _GooglePlusActivities.ArticleDisplayname = item["object"]["attachments"][0]["displayName"].ToString(); } catch { } try { _GooglePlusActivities.ArticleContent = item["object"]["attachments"][0]["content"].ToString(); } catch { } try { _GooglePlusActivities.Link = item["object"]["attachments"][0]["url"].ToString(); } catch { } } } catch (Exception ex) { _GooglePlusActivities.AttachmentType = "note"; _GooglePlusActivities.Attachment = ""; } if (!objGooglePlusActivitiesRepository.checkgoogleplusActivityExists(_GooglePlusActivities.ActivityId, Guid.Parse(UserId))) { objGooglePlusActivitiesRepository.addgoogleplusActivity(_GooglePlusActivities); } } } catch (Exception ex) { logger.Error("GetUserActivities => " + ex.Message); } }
public static void GetUserActivities(string ProfileId, string AcessToken) { oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(AppSettings.GoogleConsumerKey, AppSettings.GoogleConsumerSecret, AppSettings.GoogleRedirectUri); try { //Domain.Socioboard.Domain.GooglePlusActivities _GooglePlusActivities = null; MongoGplusFeed _GooglePlusActivities; string _Activities = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetActivitiesList.Replace("[ProfileId]", ProfileId) + "?key=" + AppSettings.GoogleApiKey, AcessToken); JObject J_Activities = JObject.Parse(_Activities); foreach (var item in J_Activities["items"]) { _GooglePlusActivities = new MongoGplusFeed(); _GooglePlusActivities.Id = ObjectId.GenerateNewId(); //_GooglePlusActivities.UserId = Guid.Parse(UserId); _GooglePlusActivities.GpUserId = ProfileId; try { _GooglePlusActivities.FromUserName = item["actor"]["displayName"].ToString(); } catch { } try { _GooglePlusActivities.FromId = item["actor"]["id"].ToString(); } catch { } try { _GooglePlusActivities.ActivityId = item["id"].ToString(); } catch { } try { _GooglePlusActivities.ActivityUrl = item["url"].ToString(); } catch { } try { _GooglePlusActivities.Title = item["title"].ToString(); } catch { } try { _GooglePlusActivities.FromProfileImage = item["actor"]["image"]["url"].ToString(); } catch { } try { _GooglePlusActivities.Content = item["object"]["content"].ToString(); } catch { } try { _GooglePlusActivities.PublishedDate = Convert.ToDateTime(item["published"].ToString()).ToString("yyyy/MM/dd HH:mm:ss"); } catch { } try { _GooglePlusActivities.PlusonersCount = Convert.ToInt32(item["object"]["plusoners"]["totalItems"].ToString()); } catch { } try { _GooglePlusActivities.RepliesCount = Convert.ToInt32(item["object"]["replies"]["totalItems"].ToString()); } catch { } try { _GooglePlusActivities.ResharersCount = Convert.ToInt32(item["object"]["resharers"]["totalItems"].ToString()); } catch { } try { _GooglePlusActivities.AttachmentType = item["object"]["attachments"][0]["objectType"].ToString(); if (_GooglePlusActivities.AttachmentType == "video") { _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["embed"]["url"].ToString(); } else if (_GooglePlusActivities.AttachmentType == "photo") { _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["image"]["url"].ToString(); } else if (_GooglePlusActivities.AttachmentType == "album") { _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["thumbnails"][0]["image"]["url"].ToString(); } else if (_GooglePlusActivities.AttachmentType == "article") { try { _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["image"]["url"].ToString(); } catch { } try { _GooglePlusActivities.ArticleDisplayname = item["object"]["attachments"][0]["displayName"].ToString(); } catch { } try { _GooglePlusActivities.ArticleContent = item["object"]["attachments"][0]["content"].ToString(); } catch { } try { _GooglePlusActivities.Link = item["object"]["attachments"][0]["url"].ToString(); } catch { } } } catch (Exception ex) { _GooglePlusActivities.AttachmentType = "note"; _GooglePlusActivities.Attachment = ""; } MongoRepository gplusFeedRepo = new MongoRepository("MongoGplusFeed"); var ret = gplusFeedRepo.Find <MongoGplusFeed>(t => t.ActivityId.Equals(_GooglePlusActivities.ActivityId)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { gplusFeedRepo.Add(_GooglePlusActivities); } else { FilterDefinition <BsonDocument> filter = new BsonDocument("ActivityId", _GooglePlusActivities.ActivityId); var update = Builders <BsonDocument> .Update.Set("PlusonersCount", _GooglePlusActivities.PlusonersCount).Set("RepliesCount", _GooglePlusActivities.RepliesCount).Set("ResharersCount", _GooglePlusActivities.ResharersCount); gplusFeedRepo.Update <MongoGplusFeed>(update, filter); } new Thread(delegate() { GetGooglePlusComments(_GooglePlusActivities.ActivityId, AcessToken, ProfileId); }).Start(); } } catch (Exception ex) { } }
public static int AddGplusAccount(JObject profile, Model.DatabaseRepository dbr, Int64 userId, Int64 groupId, string accessToken, string refreshToken, Helper.Cache _redisCache, Helper.AppSettings settings, ILogger _logger) { int isSaved = 0; Domain.Socioboard.Models.Googleplusaccounts gplusAcc = GplusRepository.getGPlusAccount(Convert.ToString(profile["id"]), _redisCache, dbr); oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(settings.GoogleConsumerKey, settings.GoogleConsumerSecret, settings.GoogleRedirectUri); if (gplusAcc != null && gplusAcc.IsActive == false) { gplusAcc.IsActive = true; gplusAcc.UserId = userId; gplusAcc.AccessToken = accessToken; gplusAcc.RefreshToken = refreshToken; gplusAcc.EntryDate = DateTime.UtcNow; try { gplusAcc.GpUserName = profile["displayName"].ToString(); } catch { try { gplusAcc.GpUserName = profile["name"].ToString(); } catch { } } try { gplusAcc.GpProfileImage = Convert.ToString(profile["image"]["url"]); } catch { try { gplusAcc.GpProfileImage = Convert.ToString(profile["picture"]); } catch { } } gplusAcc.AccessToken = accessToken; try { gplusAcc.about = Convert.ToString(profile["tagline"]); } catch { gplusAcc.about = ""; } try { gplusAcc.college = Convert.ToString(profile["organizations"][0]["name"]); } catch { gplusAcc.college = ""; } try { gplusAcc.coverPic = Convert.ToString(profile["cover"]["coverPhoto"]["url"]); } catch { gplusAcc.coverPic = ""; } try { gplusAcc.education = Convert.ToString(profile["organizations"][0]["type"]); } catch { gplusAcc.education = ""; } try { gplusAcc.EmailId = Convert.ToString(profile["emails"][0]["value"]); } catch { gplusAcc.EmailId = ""; } try { gplusAcc.gender = Convert.ToString(profile["gender"]); } catch { gplusAcc.gender = ""; } try { gplusAcc.workPosition = Convert.ToString(profile["occupation"]); } catch { gplusAcc.workPosition = ""; } gplusAcc.LastUpdate = DateTime.UtcNow; #region Get_InYourCircles try { string _InyourCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", gplusAcc.GpUserId).Replace("[collection]", "visible") + "?key=" + settings.GoogleApiKey, accessToken); JObject J_InyourCircles = JObject.Parse(_InyourCircles); gplusAcc.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString()); } catch (Exception ex) { gplusAcc.InYourCircles = 0; } #endregion #region Get_HaveYouInCircles try { string _HaveYouInCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + gplusAcc.GpUserId + "?key=" + settings.GoogleApiKey, accessToken); JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles); gplusAcc.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString()); } catch (Exception ex) { gplusAcc.HaveYouInCircles = 0; } #endregion dbr.Update <Domain.Socioboard.Models.Googleplusaccounts>(gplusAcc); } else { gplusAcc = new Domain.Socioboard.Models.Googleplusaccounts(); gplusAcc.UserId = userId; gplusAcc.GpUserId = profile["id"].ToString(); try { gplusAcc.GpUserName = profile["displayName"].ToString(); } catch { try { gplusAcc.GpUserName = profile["name"].ToString(); } catch { } } gplusAcc.IsActive = true; gplusAcc.AccessToken = accessToken; gplusAcc.RefreshToken = refreshToken; gplusAcc.EntryDate = DateTime.UtcNow; try { gplusAcc.GpProfileImage = Convert.ToString(profile["image"]["url"]); } catch { try { gplusAcc.GpProfileImage = Convert.ToString(profile["picture"]); } catch { } } gplusAcc.AccessToken = accessToken; try { gplusAcc.about = Convert.ToString(profile["tagline"]); } catch { gplusAcc.about = ""; } try { gplusAcc.college = Convert.ToString(profile["organizations"][0]["name"]); } catch { gplusAcc.college = ""; } try { gplusAcc.coverPic = Convert.ToString(profile["cover"]["coverPhoto"]["url"]); } catch { gplusAcc.coverPic = ""; } try { gplusAcc.education = Convert.ToString(profile["organizations"][0]["type"]); } catch { gplusAcc.education = ""; } try { gplusAcc.EmailId = Convert.ToString(profile["emails"][0]["value"]); } catch { try { try { gplusAcc.EmailId = Convert.ToString(profile["email"]); } catch { } } catch { } gplusAcc.EmailId = ""; } try { gplusAcc.gender = Convert.ToString(profile["gender"]); } catch { gplusAcc.gender = ""; } try { gplusAcc.workPosition = Convert.ToString(profile["occupation"]); } catch { gplusAcc.workPosition = ""; } gplusAcc.LastUpdate = DateTime.UtcNow; #region Get_InYourCircles try { string _InyourCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", gplusAcc.GpUserId).Replace("[collection]", "visible") + "?key=" + settings.GoogleApiKey, accessToken); JObject J_InyourCircles = JObject.Parse(_InyourCircles); gplusAcc.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString()); } catch (Exception ex) { gplusAcc.InYourCircles = 0; } #endregion #region Get_HaveYouInCircles try { string _HaveYouInCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + gplusAcc.GpUserId + "?key=" + settings.GoogleApiKey, accessToken); JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles); gplusAcc.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString()); } catch (Exception ex) { gplusAcc.HaveYouInCircles = 0; } #endregion isSaved = dbr.Add <Domain.Socioboard.Models.Googleplusaccounts>(gplusAcc); } if (isSaved == 1) { List <Domain.Socioboard.Models.Googleplusaccounts> lstgplusAcc = dbr.Find <Domain.Socioboard.Models.Googleplusaccounts>(t => t.GpUserId.Equals(gplusAcc.GpUserId)).ToList(); if (lstgplusAcc != null && lstgplusAcc.Count() > 0) { isSaved = GroupProfilesRepository.AddGroupProfile(groupId, lstgplusAcc.First().GpUserId, lstgplusAcc.First().GpUserName, userId, lstgplusAcc.First().GpProfileImage, Domain.Socioboard.Enum.SocialProfileType.GPlus, dbr); //codes to delete cache _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheUserProfileCount + userId); _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupProfiles + groupId); if (isSaved == 1) { new Thread(delegate() { GetUserActivities(gplusAcc.GpUserId, gplusAcc.AccessToken, settings, _logger); }).Start(); } } } return(isSaved); }
public IActionResult GoogleLoginPhone(string refreshToken, string accessToken, SBAccountType accType) { var ret = string.Empty; var objRefresh = string.Empty; var ObjoAuthTokenGPlus = new oAuthTokenGPlus(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); var objToken = new oAuthToken(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); var userinfo = new JObject(); try { var user = objToken.GetUserInfo("self", accessToken); _logger.LogInformation(user); userinfo = JObject.Parse(JArray.Parse(user)[0].ToString()); } catch (Exception ex) { _logger.LogInformation(ex.Message); _logger.LogError(ex.StackTrace); ret = "Access Token Not Found"; return(Ok(ret)); } var EmailId = string.Empty; try { EmailId = Convert.ToString(userinfo["email"]); } catch { } if (string.IsNullOrEmpty(EmailId)) { return(Ok("Google Not retuning Email")); } try { var inMemUser = _redisCache.Get <User>(EmailId); if (inMemUser != null) { return(Ok(inMemUser)); } } catch (Exception ex) { _logger.LogInformation(ex.Message); _logger.LogError(ex.StackTrace); } var dbr = new DatabaseRepository(_logger, _appEnv); var lstUser = dbr.Find <User>(t => t.EmailId.Equals(EmailId)); if (lstUser != null && lstUser.Count() > 0) { var d1 = DateTime.UtcNow; //User userTable = dbr.Single<User>(t => t.EmailId == EmailId); //userTable.LastLoginTime = d1; lstUser.First().LastLoginTime = d1; dbr.Update(lstUser.First()); _redisCache.Set(lstUser.First().EmailId, lstUser.First()); return(Ok(lstUser.First())); } { var gplusAcc = GplusRepository.getGPlusAccount(Convert.ToString(userinfo["id"]), _redisCache, dbr); if (gplusAcc != null && gplusAcc.IsActive) { return(BadRequest("GPlus account added by other user.")); } var user = new User(); if (accType == SBAccountType.Free) { user.AccountType = SBAccountType.Free; } else if (accType == SBAccountType.Deluxe) { user.AccountType = SBAccountType.Deluxe; } else if (accType == SBAccountType.Premium) { user.AccountType = SBAccountType.Premium; } else if (accType == SBAccountType.Topaz) { user.AccountType = SBAccountType.Topaz; } else if (accType == SBAccountType.Platinum) { user.AccountType = SBAccountType.Platinum; } else if (accType == SBAccountType.Gold) { user.AccountType = SBAccountType.Gold; } else if (accType == SBAccountType.Ruby) { user.AccountType = SBAccountType.Ruby; } else if (accType == SBAccountType.Standard) { user.AccountType = SBAccountType.Standard; } user.PaymentType = PaymentType.paypal; user.ActivationStatus = SBUserActivationStatus.Active; user.CreateDate = DateTime.UtcNow; user.EmailId = EmailId; user.ExpiryDate = DateTime.UtcNow.AddDays(30); user.UserName = "******"; user.EmailValidateToken = "Google"; user.UserType = "User"; user.LastLoginTime = DateTime.UtcNow; user.PaymentStatus = SBPaymentStatus.UnPaid; user.SocialLoginEnableGo = true; try { user.FirstName = Convert.ToString(userinfo["name"]); } catch { } user.RegistrationType = SBRegistrationType.Google; var SavedStatus = dbr.Add(user); var nuser = dbr.Single <User>(t => t.EmailId.Equals(user.EmailId)); if (SavedStatus == 1 && nuser != null) { var group = new Groups(); group.adminId = nuser.Id; group.createdDate = DateTime.UtcNow; group.groupName = SocioboardConsts.DefaultGroupName; SavedStatus = dbr.Add(group); if (SavedStatus == 1) { var ngrp = dbr.Find <Groups>(t => t.adminId == nuser.Id && t.groupName.Equals(SocioboardConsts.DefaultGroupName)) .FirstOrDefault(); GroupMembersRepository.CreateGroupMember(ngrp.id, nuser, _redisCache, dbr); // Adding GPlus Profile GplusRepository.AddGplusAccount(userinfo, dbr, nuser.Id, ngrp.id, accessToken, refreshToken, _redisCache, _appSettings, _logger); } } return(Ok(nuser)); } }
public IActionResult GoogleLogin(string code, SBAccountType accType) { var refreshToken = string.Empty; string accessToken; var objoAuthTokenGPlus = new oAuthTokenGPlus(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); var objToken = new oAuthToken(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); JObject userInfo; try { var objRefresh = objoAuthTokenGPlus.GetRefreshToken(code); var objAccessToken = JObject.Parse(objRefresh); _logger.LogInformation(objAccessToken.ToString()); try { refreshToken = objAccessToken["refresh_token"].ToString(); } catch (Exception ex) { _logger.LogError(ex.StackTrace); } accessToken = objAccessToken["access_token"].ToString(); var user = objToken.GetUserInfo("self", accessToken); _logger.LogInformation(user); userInfo = JObject.Parse(JArray.Parse(user)[0].ToString()); } catch (Exception ex) { _logger.LogError(ex.StackTrace); return(Ok("Access Token Not Found")); } var emailId = string.Empty; try { emailId = Convert.ToString(userInfo["email"]); } catch (Exception ex) { _logger.LogError(ex.StackTrace); } if (string.IsNullOrEmpty(emailId)) { return(Ok("Google not returning Email")); } try { var inMemUser = _redisCache.Get <User>(emailId); if (inMemUser != null) { return(Ok(inMemUser)); } } catch (Exception ex) { _logger.LogError(ex.StackTrace); } var dbr = new DatabaseRepository(_logger, _appEnv); var signedInUser = dbr.FindFirstMatch <User>(t => t.EmailId.Equals(emailId)); if (signedInUser != null) { if (!signedInUser.SocialLoginEnableGo) { return(Ok("Account isn't sign-up with google!")); } CustomTaskFactory.Instance.Start(() => { if (signedInUser.RefrralCode == null) { signedInUser.RefrralCode = $"{SocioboardApiConstants.ApplicationName}" + signedInUser.Id; } signedInUser.LastLoginTime = DateTime.UtcNow; dbr.Update(signedInUser); _redisCache.Set(signedInUser.EmailId, signedInUser); }); return(Ok(signedInUser)); } var googleUser = new User { AccountType = accType, PaymentType = PaymentType.paypal, ActivationStatus = SBUserActivationStatus.Active, CreateDate = DateTime.UtcNow, EmailId = emailId, ExpiryDate = DateTime.UtcNow.AddDays(1), UserName = $"{SocioboardApiConstants.ApplicationName}", EmailValidateToken = "Google", UserType = "User", LastLoginTime = DateTime.UtcNow, SocialLoginEnableGo = true, SocialLoginEnableFb = false, PaymentStatus = SBPaymentStatus.UnPaid, RegistrationType = SBRegistrationType.Google, TrailStatus = UserTrailStatus.active }; if (googleUser.AccountType == SBAccountType.Free) { googleUser.ExpiryDate = DateTime.UtcNow.AddDays(15); } try { googleUser.FirstName = Convert.ToString(userInfo["name"]); } catch (Exception ex) { _logger.LogError(ex.StackTrace); } var savedStatus = dbr.Add(googleUser); var googleUserAccount = dbr.FindFirstMatch <User>(t => t.EmailId.Equals(googleUser.EmailId)); CustomTaskFactory.Instance.Start(() => { if (savedStatus != 1 || googleUserAccount == null) { return; } _redisCache.Set(emailId, googleUserAccount); var group = new Groups(); group.adminId = googleUserAccount.Id; group.createdDate = DateTime.UtcNow; group.groupName = SocioboardConsts.DefaultGroupName; savedStatus = dbr.Add(group); if (savedStatus != 1) { return; } var groupDetails = dbr.Find <Groups>(t => t.adminId == googleUserAccount.Id && t.groupName.Equals(SocioboardConsts.DefaultGroupName)) .FirstOrDefault(); if (groupDetails == null) { return; } GroupMembersRepository.CreateGroupMember(groupDetails.id, googleUserAccount, _redisCache, dbr); GplusRepository.AddGplusAccount(userInfo, dbr, googleUserAccount.Id, groupDetails.id, accessToken, refreshToken, _redisCache, _appSettings, _logger); }); return(Ok(googleUserAccount)); }
public void UpdateGooglePlusAccount() { while (true) { try { Helper.DatabaseRepository dbr = new Helper.DatabaseRepository(); oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(AppSettings.GoogleConsumerKey, AppSettings.GoogleConsumerSecret, AppSettings.GoogleRedirectUri); oAuthToken objToken = new oAuthToken(AppSettings.GoogleConsumerKey, AppSettings.GoogleConsumerSecret, AppSettings.GoogleRedirectUri); JObject userinfo = new JObject(); List <Domain.Socioboard.Models.Googleplusaccounts> lstTwtAccounts = dbr.Find <Domain.Socioboard.Models.Googleplusaccounts>(t => t.IsActive).ToList(); // lstTwtAccounts = lstTwtAccounts.Where(t => t.GpUserName.Contains("Avinash Verma")).ToList(); foreach (var item in lstTwtAccounts) { List <Domain.Socioboard.Models.Groupprofiles> _grpProfile = dbr.Find <Domain.Socioboard.Models.Groupprofiles>(t => t.profileId.Contains(item.GpUserId)).ToList(); try { if (item.LastUpdate.AddHours(1) <= DateTime.UtcNow) { if (item.IsActive) { try { string objRefresh = ObjoAuthTokenGPlus.GetAccessToken(item.RefreshToken); JObject objaccesstoken = JObject.Parse(objRefresh); string access_token = objaccesstoken["access_token"].ToString(); string user = objToken.GetUserInfo("self", access_token); userinfo = JObject.Parse(JArray.Parse(user)[0].ToString()); string people = objToken.GetPeopleInfo("self", access_token, item.GpUserId); userinfo = JObject.Parse(JArray.Parse(people)[0].ToString()); try { item.GpUserName = userinfo["displayName"].ToString(); } catch { try { item.GpUserName = userinfo["name"].ToString(); } catch { } } try { item.GpProfileImage = Convert.ToString(userinfo["image"]["url"]); _grpProfile.Select(s => { s.profilePic = Convert.ToString(userinfo["image"]["url"]); return(s); }).ToList(); } catch { try { item.GpProfileImage = Convert.ToString(userinfo["picture"]); _grpProfile.Select(s => { s.profilePic = Convert.ToString(userinfo["picture"]); return(s); }).ToList(); } catch { } } try { item.about = Convert.ToString(userinfo["tagline"]); } catch { item.about = item.about; } try { item.college = Convert.ToString(userinfo["organizations"][0]["name"]); } catch { item.college = item.college; } try { item.coverPic = Convert.ToString(userinfo["cover"]["coverPhoto"]["url"]); } catch { item.coverPic = item.coverPic; } try { item.education = Convert.ToString(userinfo["organizations"][0]["type"]); } catch { item.education = item.education; } try { item.EmailId = Convert.ToString(userinfo["emails"][0]["value"]); } catch { item.EmailId = item.EmailId; } try { item.gender = Convert.ToString(userinfo["gender"]); } catch { item.gender = item.gender; } try { item.workPosition = Convert.ToString(userinfo["occupation"]); } catch { item.workPosition = item.workPosition; } #region Get_InYourCircles try { string _InyourCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", item.GpUserId).Replace("[collection]", "visible") + "?key=" + AppSettings.GoogleApiKey, item.AccessToken); JObject J_InyourCircles = JObject.Parse(_InyourCircles); item.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString()); } catch (Exception ex) { item.InYourCircles = item.InYourCircles; } #endregion #region Get_HaveYouInCircles try { string _HaveYouInCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + item.GpUserId + "?key=" + AppSettings.GoogleApiKey, item.AccessToken); JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles); item.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString()); } catch (Exception ex) { item.HaveYouInCircles = item.HaveYouInCircles; } #endregion dbr.Update <Domain.Socioboard.Models.Googleplusaccounts>(item); foreach (var item_grpProfile in _grpProfile) { dbr.Update <Domain.Socioboard.Models.Groupprofiles>(item_grpProfile); } GooglePlusFeed.GetUserActivities(item.GpUserId, access_token); item.LastUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.Googleplusaccounts>(item); } catch (Exception) { Thread.Sleep(600000); } } } } catch (Exception ex) { Thread.Sleep(600000); } } Thread.Sleep(600000); } catch (Exception ex) { Console.WriteLine("issue in web api calling" + ex.StackTrace); Thread.Sleep(600000); } } }
public string AddGPlusAccount(string client_id, string client_secret, string redirect_uri, string UserId, string GroupId, string code) { string ret = string.Empty; string objRefresh = string.Empty; string refreshToken = string.Empty; string access_token = string.Empty; try { oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(); oAuthToken objToken = new oAuthToken(); objToken.ConsumerKey = client_id; objToken.ConsumerSecret = client_secret; try { objRefresh = ObjoAuthTokenGPlus.GetRefreshToken(code, client_id, client_secret, redirect_uri); logger.Error("vikash: ObjoAuthTokenGPlus()"); } catch (Exception ex) { } JObject objaccesstoken = JObject.Parse(objRefresh); try { refreshToken = objaccesstoken["refresh_token"].ToString(); } catch (Exception ex) { access_token = objaccesstoken["access_token"].ToString(); ObjoAuthTokenGPlus.RevokeToken(access_token); Console.WriteLine(ex.StackTrace); ret = "Refresh Token Not Found"; return(ret); } try { access_token = objaccesstoken["access_token"].ToString(); } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } JArray userinfo = new JArray(); try { userinfo = objToken.GetUserInfo("self", access_token.ToString()); } catch (Exception ex) { } Domain.Socioboard.Domain.GooglePlusAccount _GooglePlusAccount = new Domain.Socioboard.Domain.GooglePlusAccount(); foreach (var itemuserinfo in userinfo) { try { _GooglePlusAccount.Id = Guid.NewGuid(); _GooglePlusAccount.GpUserId = itemuserinfo["id"].ToString(); _GooglePlusAccount.GpUserName = itemuserinfo["name"].ToString(); _GooglePlusAccount.GpProfileImage = itemuserinfo["picture"].ToString(); _GooglePlusAccount.IsActive = 1; _GooglePlusAccount.ProfileType = "gplus"; _GooglePlusAccount.AccessToken = access_token; _GooglePlusAccount.RefreshToken = refreshToken; _GooglePlusAccount.EmailId = itemuserinfo["email"].ToString(); _GooglePlusAccount.UserId = Guid.Parse(UserId); _GooglePlusAccount.EntryDate = DateTime.Now; } catch (Exception ex) { logger.Error("AddGPlusAccount => GooglePlusAccount =>" + ex.Message); } } #region Get_InYourCircles try { string _InyourCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", _GooglePlusAccount.GpUserId).Replace("[collection]", "visible") + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), access_token); JObject J_InyourCircles = JObject.Parse(_InyourCircles); _GooglePlusAccount.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString()); } catch (Exception ex) { _GooglePlusAccount.InYourCircles = 0; } #endregion #region Get_HaveYouInCircles try { string _HaveYouInCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + _GooglePlusAccount.GpUserId + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), access_token); JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles); _GooglePlusAccount.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString()); } catch (Exception ex) { _GooglePlusAccount.HaveYouInCircles = 0; } #endregion #region Add GPlusAccount if (!objGooglePlusAccountRepository.checkGooglePlusUserExists(_GooglePlusAccount.GpUserId, _GooglePlusAccount.UserId)) { objGooglePlusAccountRepository.addGooglePlusUser(_GooglePlusAccount); #region Add TeamMemberProfile Domain.Socioboard.Domain.Team objTeam = objTeamRepository.GetTeamByGroupId(Guid.Parse(GroupId)); Domain.Socioboard.Domain.TeamMemberProfile objTeamMemberProfile = new Domain.Socioboard.Domain.TeamMemberProfile(); objTeamMemberProfile.Id = Guid.NewGuid(); objTeamMemberProfile.TeamId = objTeam.Id; objTeamMemberProfile.Status = 1; objTeamMemberProfile.ProfileType = "gplus"; objTeamMemberProfile.StatusUpdateDate = DateTime.Now; objTeamMemberProfile.ProfileId = _GooglePlusAccount.GpUserId; objTeamMemberProfile.ProfilePicUrl = _GooglePlusAccount.GpProfileImage; objTeamMemberProfile.ProfileName = _GooglePlusAccount.GpUserName; objTeamMemberProfileRepository.addNewTeamMember(objTeamMemberProfile); #endregion #region SocialProfile Domain.Socioboard.Domain.SocialProfile objSocialProfile = new Domain.Socioboard.Domain.SocialProfile(); objSocialProfile.Id = Guid.NewGuid(); objSocialProfile.ProfileType = "gplus"; objSocialProfile.ProfileId = _GooglePlusAccount.GpUserId; objSocialProfile.UserId = Guid.Parse(UserId); objSocialProfile.ProfileDate = DateTime.Now; objSocialProfile.ProfileStatus = 1; if (!objSocialProfilesRepository.checkUserProfileExist(objSocialProfile)) { objSocialProfilesRepository.addNewProfileForUser(objSocialProfile); } #endregion ret = "Account Added Successfully"; } else { ret = "Account already Exist !"; } #endregion GetUserActivities(UserId, _GooglePlusAccount.GpUserId, access_token); return(new JavaScriptSerializer().Serialize(_GooglePlusAccount)); } catch (Exception ex) { logger.Error(ex.Message); return(""); } }
public void GetUserActivities(string UserId, string ProfileId, string AcessToken, int status) { oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(); try { //Domain.Socioboard.Domain.GooglePlusActivities _GooglePlusActivities = null; Domain.Socioboard.MongoDomain.GoogleplusFeed _GooglePlusActivities; string _Activities = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetActivitiesList.Replace("[ProfileId]", ProfileId) + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), AcessToken); JObject J_Activities = JObject.Parse(_Activities); foreach (var item in J_Activities["items"]) { _GooglePlusActivities = new Domain.Socioboard.MongoDomain.GoogleplusFeed(); _GooglePlusActivities.Id = ObjectId.GenerateNewId(); //_GooglePlusActivities.UserId = Guid.Parse(UserId); _GooglePlusActivities.GpUserId = ProfileId; try { _GooglePlusActivities.FromUserName = item["actor"]["displayName"].ToString(); } catch { } try { _GooglePlusActivities.FromId = item["actor"]["id"].ToString(); } catch { } try { _GooglePlusActivities.ActivityId = item["id"].ToString(); } catch { } try { _GooglePlusActivities.ActivityUrl = item["url"].ToString(); } catch { } try { _GooglePlusActivities.Title = item["title"].ToString(); } catch { } try { _GooglePlusActivities.FromProfileImage = item["actor"]["image"]["url"].ToString(); } catch { } try { _GooglePlusActivities.Content = item["object"]["content"].ToString(); } catch { } try { _GooglePlusActivities.PublishedDate = Convert.ToDateTime(item["published"].ToString()).ToString("yyyy/MM/dd HH:mm:ss"); } catch { } try { _GooglePlusActivities.PlusonersCount = Convert.ToInt32(item["object"]["plusoners"]["totalItems"].ToString()); } catch { } try { _GooglePlusActivities.RepliesCount = Convert.ToInt32(item["object"]["replies"]["totalItems"].ToString()); } catch { } try { _GooglePlusActivities.ResharersCount = Convert.ToInt32(item["object"]["resharers"]["totalItems"].ToString()); } catch { } try { _GooglePlusActivities.AttachmentType = item["object"]["attachments"][0]["objectType"].ToString(); if (_GooglePlusActivities.AttachmentType == "video") { _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["embed"]["url"].ToString(); } else if (_GooglePlusActivities.AttachmentType == "photo") { _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["image"]["url"].ToString(); } else if (_GooglePlusActivities.AttachmentType == "album") { _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["thumbnails"][0]["image"]["url"].ToString(); } else if (_GooglePlusActivities.AttachmentType == "article") { try { _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["image"]["url"].ToString(); } catch { } try { _GooglePlusActivities.ArticleDisplayname = item["object"]["attachments"][0]["displayName"].ToString(); } catch { } try { _GooglePlusActivities.ArticleContent = item["object"]["attachments"][0]["content"].ToString(); } catch { } try { _GooglePlusActivities.Link = item["object"]["attachments"][0]["url"].ToString(); } catch { } } } catch (Exception ex) { _GooglePlusActivities.AttachmentType = "note"; _GooglePlusActivities.Attachment = ""; } //if (!objGooglePlusActivitiesRepository.checkgoogleplusActivityExists(_GooglePlusActivities.ActivityId, Guid.Parse(UserId))) //{ // objGooglePlusActivitiesRepository.addgoogleplusActivity(_GooglePlusActivities); //} var ret = gplusFeedRepo.Find <Domain.Socioboard.MongoDomain.GoogleplusFeed>(t => t.ActivityId.Equals(_GooglePlusActivities.ActivityId)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { gplusFeedRepo.Add(_GooglePlusActivities); } else { FilterDefinition <BsonDocument> filter = new BsonDocument("ActivityId", _GooglePlusActivities.ActivityId); var update = Builders <BsonDocument> .Update.Set("PlusonersCount", _GooglePlusActivities.PlusonersCount).Set("RepliesCount", _GooglePlusActivities.RepliesCount).Set("ResharersCount", _GooglePlusActivities.ResharersCount); gplusFeedRepo.Update <Domain.Socioboard.MongoDomain.GoogleplusFeed>(update, filter); } GetGooglePlusComments(_GooglePlusActivities.ActivityId, AcessToken, ProfileId); GetGooglePlusLikes(_GooglePlusActivities.ActivityId, AcessToken, ProfileId, status); } } catch (Exception ex) { logger.Error("GetUserActivities => " + ex.Message); } }
public IActionResult GoogleLogin(string code, Domain.Socioboard.Enum.SBAccountType accType) { string ret = string.Empty; string objRefresh = string.Empty; string refreshToken = string.Empty; string access_token = string.Empty; oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); oAuthToken objToken = new oAuthToken(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); JObject userinfo = new JObject(); try { objRefresh = ObjoAuthTokenGPlus.GetRefreshToken(code); JObject objaccesstoken = JObject.Parse(objRefresh); _logger.LogInformation(objaccesstoken.ToString()); try { refreshToken = objaccesstoken["refresh_token"].ToString(); } catch { } access_token = objaccesstoken["access_token"].ToString(); string user = objToken.GetUserInfo("self", access_token.ToString()); _logger.LogInformation(user); userinfo = JObject.Parse(JArray.Parse(user)[0].ToString()); } catch (Exception ex) { //access_token = objaccesstoken["access_token"].ToString(); //ObjoAuthTokenGPlus.RevokeToken(access_token); _logger.LogInformation(ex.Message); _logger.LogError(ex.StackTrace); ret = "Access Token Not Found"; return(Ok(ret)); } string EmailId = string.Empty; try { EmailId = (Convert.ToString(userinfo["email"])); } catch { } if (string.IsNullOrEmpty(EmailId)) { return(Ok("Google Not retuning Email")); } try { User inMemUser = _redisCache.Get <User>(EmailId); if (inMemUser != null) { return(Ok(inMemUser)); } } catch (Exception ex) { _logger.LogInformation(ex.Message); _logger.LogError(ex.StackTrace); } DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); IList <User> lstUser = dbr.Find <User>(t => t.EmailId.Equals(EmailId)); if (lstUser != null && lstUser.Count() > 0) { DateTime d1 = DateTime.UtcNow; //User userTable = dbr.Single<User>(t => t.EmailId == EmailId); //userTable.LastLoginTime = d1; lstUser.First().LastLoginTime = d1; dbr.Update <User>(lstUser.First()); _redisCache.Set <User>(lstUser.First().EmailId, lstUser.First()); return(Ok(lstUser.First())); } else { Domain.Socioboard.Models.Googleplusaccounts gplusAcc = Api.Socioboard.Repositories.GplusRepository.getGPlusAccount(Convert.ToString(userinfo["id"]), _redisCache, dbr); if (gplusAcc != null && gplusAcc.IsActive == true) { return(Ok("GPlus account added by other user.")); } Domain.Socioboard.Models.User user = new Domain.Socioboard.Models.User(); if (accType == Domain.Socioboard.Enum.SBAccountType.Free) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Free; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Deluxe) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Deluxe; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Premium) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Premium; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Topaz) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Topaz; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Platinum) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Platinum; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Gold) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Gold; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Ruby) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Ruby; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Standard) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Standard; } user.PaymentType = Domain.Socioboard.Enum.PaymentType.paypal; user.ActivationStatus = Domain.Socioboard.Enum.SBUserActivationStatus.Active; user.CreateDate = DateTime.UtcNow; user.EmailId = EmailId; user.ExpiryDate = DateTime.UtcNow.AddDays(1); user.UserName = "******"; user.EmailValidateToken = "Google"; user.UserType = "User"; user.PaymentStatus = Domain.Socioboard.Enum.SBPaymentStatus.UnPaid; try { user.FirstName = (Convert.ToString(userinfo["name"])); } catch { } user.RegistrationType = Domain.Socioboard.Enum.SBRegistrationType.Google; int SavedStatus = dbr.Add <Domain.Socioboard.Models.User>(user); User nuser = dbr.Single <User>(t => t.EmailId.Equals(user.EmailId)); if (SavedStatus == 1 && nuser != null) { Groups group = new Groups(); group.adminId = nuser.Id; group.createdDate = DateTime.UtcNow; group.groupName = Domain.Socioboard.Consatants.SocioboardConsts.DefaultGroupName; SavedStatus = dbr.Add <Groups>(group); if (SavedStatus == 1) { Groups ngrp = dbr.Find <Domain.Socioboard.Models.Groups>(t => t.adminId == nuser.Id && t.groupName.Equals(Domain.Socioboard.Consatants.SocioboardConsts.DefaultGroupName)).FirstOrDefault(); GroupMembersRepository.createGroupMember(ngrp.id, nuser, _redisCache, dbr); // Adding GPlus Profile Api.Socioboard.Repositories.GplusRepository.AddGplusAccount(userinfo, dbr, nuser.Id, ngrp.id, access_token, refreshToken, _redisCache, _appSettings, _logger); } } return(Ok(nuser)); } }
private void ParseAndUpdateGoogleAccountFeeds(Googleplusaccounts googlePlusAccount, oAuthTokenGPlus objoAuthTokenGPlus, oAuthToken objToken) { try { string objRefresh = objoAuthTokenGPlus.GetAccessToken(googlePlusAccount.RefreshToken); JObject objaccesstoken = JObject.Parse(objRefresh); string access_token = objaccesstoken.SelectToken("access_token")?.ToString(); MongoGplusFeed _GooglePlusActivities; string _Activities = objoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetActivitiesList.Replace("[ProfileId]", googlePlusAccount.GpUserId) + "?key=" + AppSettings.googleApiKey, access_token); JObject J_Activities = JObject.Parse(_Activities); foreach (var item in J_Activities["items"]) { _GooglePlusActivities = new MongoGplusFeed(); _GooglePlusActivities.Id = ObjectId.GenerateNewId(); _GooglePlusActivities.GpUserId = googlePlusAccount.GpUserId; _GooglePlusActivities.FromUserName = item.SelectToken("actor.displayName")?.ToString(); _GooglePlusActivities.FromId = item.SelectToken("actor.id")?.ToString(); _GooglePlusActivities.ActivityId = item.SelectToken("id")?.ToString(); _GooglePlusActivities.ActivityUrl = item.SelectToken("url")?.ToString(); _GooglePlusActivities.Title = item.SelectToken("title")?.ToString(); _GooglePlusActivities.FromProfileImage = item.SelectToken("actor.image.url")?.ToString(); _GooglePlusActivities.Content = item.SelectToken("object.content")?.ToString(); _GooglePlusActivities.PublishedDate = Convert.ToDateTime(item.SelectToken("published")?.ToString()).ToString("yyyy/MM/dd HH:mm:ss") ?? ""; _GooglePlusActivities.PlusonersCount = Convert.ToInt32(item.SelectToken("object.plusoners.totalItems")?.ToString() ?? "0"); _GooglePlusActivities.RepliesCount = Convert.ToInt32(item.SelectToken("object.replies.totalItems")?.ToString() ?? "0"); _GooglePlusActivities.ResharersCount = Convert.ToInt32(item.SelectToken("object.resharers.totalItems")?.ToString() ?? "0"); _GooglePlusActivities.AttachmentType = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("objectType")?.ToString() ?? ""; switch (_GooglePlusActivities.AttachmentType) { case "video": _GooglePlusActivities.Attachment = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("embed.url")?.ToString() ?? ""; break; case "photo": _GooglePlusActivities.Attachment = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("image.url")?.ToString() ?? ""; break; case "album": _GooglePlusActivities.Attachment = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectTokens("thumbnails")?.FirstOrDefault().SelectToken("image.url")?.ToString() ?? ""; break; case "article": _GooglePlusActivities.Attachment = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("image.url")?.ToString() ?? ""; _GooglePlusActivities.ArticleDisplayname = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("displayName")?.ToString() ?? ""; _GooglePlusActivities.ArticleContent = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("content")?.ToString() ?? ""; _GooglePlusActivities.Link = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("url")?.ToString() ?? ""; break; default: _GooglePlusActivities.AttachmentType = "note"; _GooglePlusActivities.Attachment = ""; break; } MongoRepository gplusFeedRepo = new MongoRepository("MongoGplusFeed"); var ret = gplusFeedRepo.Find <MongoGplusFeed>(t => t.ActivityId.Equals(_GooglePlusActivities.ActivityId)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { gplusFeedRepo.Add(_GooglePlusActivities); } else { FilterDefinition <BsonDocument> filter = new BsonDocument("ActivityId", _GooglePlusActivities.ActivityId); var update = Builders <BsonDocument> .Update.Set("PlusonersCount", _GooglePlusActivities.PlusonersCount).Set("RepliesCount", _GooglePlusActivities.RepliesCount).Set("ResharersCount", _GooglePlusActivities.ResharersCount); gplusFeedRepo.Update <MongoGplusFeed>(update, filter); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } }