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) { } }
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); } }