public static void SaveFacebookPageFeed(string accesstoken, string facebookid, string PageName) { try { dynamic fbfeeds = FbUser.getFeeds(accesstoken, facebookid); if (fbfeeds != null) { apiHitsCount++; foreach (var _feed in fbfeeds["data"]) { try { Domain.Socioboard.Models.Mongo.FacebookPagePost _FacebookPagePost = new Domain.Socioboard.Models.Mongo.FacebookPagePost(); _FacebookPagePost.Id = ObjectId.GenerateNewId(); _FacebookPagePost.strId = ObjectId.GenerateNewId().ToString(); _FacebookPagePost.PageId = facebookid; try { _FacebookPagePost.PageName = _feed["from"]["name"].ToString(); } catch { _FacebookPagePost.PageName = PageName; } try { _FacebookPagePost.PostId = _feed["id"].ToString(); } catch { } try { _FacebookPagePost.Message = _feed["message"].ToString(); } catch { _FacebookPagePost.Message = ""; } try { _FacebookPagePost.Link = _feed["link"].ToString(); } catch { _FacebookPagePost.Link = ""; } try { _FacebookPagePost.Name = _feed["name"].ToString(); } catch { _FacebookPagePost.Name = ""; } try { _FacebookPagePost.Picture = _feed["picture"].ToString(); } catch { _FacebookPagePost.Picture = ""; } try { _FacebookPagePost.Description = _feed["description"].ToString(); } catch { _FacebookPagePost.Description = ""; } try { _FacebookPagePost.Type = _feed["type"].ToString(); } catch { _FacebookPagePost.Type = ""; } try { _FacebookPagePost.CreatedTime = ToUnixTimestamp(Convert.ToDateTime(_feed["created_time"].ToString())); } catch { _FacebookPagePost.CreatedTime = ToUnixTimestamp(DateTime.UtcNow); } try { dynamic feeddetails = FbUser.getFeedDetail(accesstoken, _FacebookPagePost.PostId); try { _FacebookPagePost.Likes = feeddetails["likes"]["summary"]["total_count"].ToString(); } catch { _FacebookPagePost.Likes = "0"; } try { _FacebookPagePost.Comments = feeddetails["comments"]["summary"]["total_count"].ToString(); } catch { _FacebookPagePost.Comments = "0"; } try { _FacebookPagePost.Shares = feeddetails["shares"]["count"].ToString(); } catch { _FacebookPagePost.Shares = "0"; } } catch (Exception ex) { } try { dynamic postdetails = FbUser.postdetails(accesstoken, _FacebookPagePost.PostId); string _clicks = string.Empty; foreach (var _details in postdetails["data"]) { if (_details["name"].ToString() == "post_story_adds_unique") { try { _FacebookPagePost.Talking = _details["values"][0]["value"].ToString(); } catch (Exception ex) { _FacebookPagePost.Talking = "0"; } } else if (_details["name"].ToString() == "post_impressions_unique") { try { _FacebookPagePost.Reach = _details["values"][0]["value"].ToString(); } catch (Exception ex) { _FacebookPagePost.Reach = "0"; } } else if (_details["name"].ToString() == "post_consumptions_by_type_unique") { try { _clicks = _details["values"][0]["value"]["other clicks"].ToString(); } catch (Exception ex) { _clicks = "0"; } } } try { _FacebookPagePost.EngagedUsers = (Int32.Parse(_clicks) + Int32.Parse(_FacebookPagePost.Talking)).ToString(); } catch (Exception ex) { _FacebookPagePost.EngagedUsers = "0"; } try { _FacebookPagePost.Engagement = (double.Parse(_FacebookPagePost.EngagedUsers.ToString()) * 100) / double.Parse(_FacebookPagePost.Reach.ToString()); } catch (Exception) { _FacebookPagePost.Engagement = 0.00; } } catch { } //code to save facebookpage post data MongoRepository reppoFacebookPagePost = new MongoRepository("FacebookPagePost"); var ret = reppoFacebookPagePost.Find <Domain.Socioboard.Models.Mongo.FacebookPagePost>(t => t.PostId == _FacebookPagePost.PostId); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count > 0) { var update = Builders <Domain.Socioboard.Models.Mongo.FacebookPagePost> .Update.Set(t => t.Likes, _FacebookPagePost.Likes).Set(t => t.Comments, _FacebookPagePost.Comments).Set(t => t.Shares, _FacebookPagePost.Shares) .Set(t => t.EngagedUsers, _FacebookPagePost.EngagedUsers).Set(t => t.Talking, _FacebookPagePost.Talking).Set(t => t.Engagement, _FacebookPagePost.Engagement) .Set(t => t.Reach, _FacebookPagePost.Reach).Set(t => t.Link, _FacebookPagePost.Link); reppoFacebookPagePost.Update <Domain.Socioboard.Models.Mongo.FacebookPagePost>(update, t => t.PostId == _FacebookPagePost.PostId); } else { reppoFacebookPagePost.Add(_FacebookPagePost); } } catch (Exception ex) { } } } else { apiHitsCount = MaxapiHitsCount; } } catch (Exception ex) { apiHitsCount = MaxapiHitsCount; } }