public static string EditgroupShareathon(string GroupShareathodId, long userId, string FacebookUrl, string FacebookGroupId, string Facebookaccountid, int Timeintervalminutes, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr) { string[] groupids = null; string groupId = ""; string groupName = ""; Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(Facebookaccountid, _redisCache, dbr); string pageid = Helper.FacebookHelper.GetFbPageDetails(FacebookUrl, _Facebookaccounts.AccessToken); groupids = FacebookGroupId.Split(','); foreach (var item in groupids) { string[] grpId = Regex.Split(item, "<:>"); groupId = grpId[1] + ',' + groupId; groupName = grpId[0] + ',' + groupName; } try { MongoRepository _ShareathonRepository = new MongoRepository("GroupShareathon", _appSettings); var builders = Builders <BsonDocument> .Filter; FilterDefinition <BsonDocument> filter = builders.Eq("strId", GroupShareathodId); var update = Builders <BsonDocument> .Update.Set("Facebookaccountid", _Facebookaccounts.FbUserId).Set("Facebookusername", _Facebookaccounts.FbUserName).Set("FacebookPageId", pageid.TrimEnd(',')) .Set("Facebookgroupid", groupId.TrimEnd(',')).Set("FacebookPageUrl", FacebookUrl).Set("Facebookgroupname", groupName.TrimEnd(',')).Set("Facebooknameid", FacebookGroupId) .Set("Timeintervalminutes", Timeintervalminutes); _ShareathonRepository.Update <Domain.Socioboard.Models.Mongo.GroupShareathon>(update, filter); return("Success"); } catch (Exception ex) { return("Error"); } }
public static string EditPageShareathon(string PageShareathodId, long userId, string FacebookPageId, string Facebookaccountid, int Timeintervalminutes, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr) { try { string[] profileids = null; string facebookpagename = ""; profileids = FacebookPageId.Split(','); foreach (var item in profileids) { Domain.Socioboard.Models.Facebookaccounts objfacebookpage = Repositories.FacebookRepository.getFacebookAccount(item, _redisCache, dbr); facebookpagename = objfacebookpage.FbUserName + ',' + facebookpagename; } Domain.Socioboard.Models.Facebookaccounts objfacebook = Repositories.FacebookRepository.getFacebookAccount(Facebookaccountid, _redisCache, dbr); MongoRepository _ShareathonRepository = new MongoRepository("Shareathon", _appSettings); var builders = Builders <BsonDocument> .Filter; FilterDefinition <BsonDocument> filter = builders.Eq("strId", PageShareathodId); var update = Builders <BsonDocument> .Update.Set("Facebookaccountid", objfacebook.FbUserId).Set("FacebookPageId", FacebookPageId) .Set("Timeintervalminutes", Timeintervalminutes).Set("Facebookusername", objfacebook.FbUserName).Set("Facebookpagename", facebookpagename.TrimEnd(',')); _ShareathonRepository.Update <Domain.Socioboard.Models.Mongo.PageShareathon>(update, filter); return("Success"); } catch (Exception ex) { return("Error"); } }
private static void schedulemessages(DatabaseRepository dbr, IGrouping <string, Domain.Socioboard.Models.ScheduledMessage> items) { try { Domain.Socioboard.Models.Facebookaccounts _facebook = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == items.Key && t.IsActive); if (_facebook != null) { foreach (var item in items) { try { Console.WriteLine(item.socialprofileName + "Scheduling Started"); FacebookScheduler.PostFacebookMessage(item, _facebook); Console.WriteLine(item.socialprofileName + "Scheduling"); } catch (Exception) { } } _facebook.SchedulerUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(_facebook); } } catch (Exception ex) { // Thread.Sleep(60000); } }
public IActionResult AddRssUrl(long userId, long groupId, string rssUrl, string profileId) { try { XmlDocument xmlDoc = new XmlDocument(); // Create an XML document object xmlDoc.Load(rssUrl); var abc = xmlDoc.DocumentElement.GetElementsByTagName("item"); if (abc.Count == 0) { return(Ok("This Url Does't Conatin Rss Feed")); } } catch (Exception ex) { return(Ok("This Url Does't Conatin Rss Feed")); } DatabaseRepository dbr = new DatabaseRepository(_logger, _env); string _RssFeedUrl = Repositories.RssFeedRepository.AddRssUrl(profileId, rssUrl, dbr); if (_RssFeedUrl != "null") { string[] lstProfileIds = null; if (profileId != null) { lstProfileIds = profileId.Split(','); profileId = lstProfileIds[0]; } else { return(Ok("profileId required")); } foreach (var item in lstProfileIds) { if (item.StartsWith("fb")) { string prId = item.Substring(3, item.Length - 3); Domain.Socioboard.Models.Facebookaccounts objFacebookAccount = Api.Socioboard.Repositories.FacebookRepository.getFacebookAccount(prId, _redisCache, dbr); string ret = Repositories.RssFeedRepository.AddRssFeed(rssUrl, userId, prId, Domain.Socioboard.Enum.SocialProfileType.Facebook, "http://graph.facebook.com/" + objFacebookAccount.FbUserId + "/picture?type=small", objFacebookAccount.FbUserName, null, dbr, _appSettings); } if (item.StartsWith("page")) { string prId = item.Substring(5, item.Length - 5); Domain.Socioboard.Models.Facebookaccounts objFacebookAccount = Api.Socioboard.Repositories.FacebookRepository.getFacebookAccount(prId, _redisCache, dbr); string ret = Repositories.RssFeedRepository.AddRssFeed(rssUrl, userId, prId, Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage, "http://graph.facebook.com/" + objFacebookAccount.FbUserId + "/picture?type=small", objFacebookAccount.FbUserName, null, dbr, _appSettings); } if (item.StartsWith("tw")) { string prId = item.Substring(3, item.Length - 3); Domain.Socioboard.Models.TwitterAccount objTwitterAccount = Api.Socioboard.Repositories.TwitterRepository.getTwitterAccount(prId, _redisCache, dbr); string ret = Repositories.RssFeedRepository.AddRssFeed(rssUrl, userId, prId, Domain.Socioboard.Enum.SocialProfileType.Twitter, objTwitterAccount.profileImageUrl, objTwitterAccount.twitterName, null, dbr, _appSettings); } } } return(Ok("Added Successfully")); }
public static string AddGroupShareathon(long userId, string FacebookUrl, string FacebookGroupId, string Facebookaccountid, int Timeintervalminutes, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr) { string[] profileids = null; string[] groupids = null; string groupId = ""; string groupName = ""; Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(Facebookaccountid, _redisCache, dbr); string pageid = Helper.FacebookHelper.GetFbPageDetails(FacebookUrl, _Facebookaccounts.AccessToken); Domain.Socioboard.Models.Mongo.GroupShareathon _GroupShareathon = new Domain.Socioboard.Models.Mongo.GroupShareathon(); _GroupShareathon.Id = ObjectId.GenerateNewId(); _GroupShareathon.strId = ObjectId.GenerateNewId().ToString(); _GroupShareathon.Userid = userId; _GroupShareathon.Timeintervalminutes = Timeintervalminutes; _GroupShareathon.FacebookStatus = 0; _GroupShareathon.FacebookPageUrl = FacebookUrl; _GroupShareathon.Facebookpageid = pageid.TrimEnd(','); _GroupShareathon.Facebooknameid = FacebookGroupId; groupids = FacebookGroupId.Split(','); foreach (var item in groupids) { string[] grpId = Regex.Split(item, "<:>"); groupId = grpId[1] + ',' + groupId; groupName = grpId[0] + ',' + groupName; } _GroupShareathon.Facebookgroupid = groupId.TrimEnd(','); _GroupShareathon.Facebookgroupname = groupName.TrimEnd(','); _GroupShareathon.Facebookaccountid = _Facebookaccounts.FbUserId; _GroupShareathon.Facebookusername = _Facebookaccounts.FbUserName; _GroupShareathon.AccessToken = _Facebookaccounts.AccessToken; _GroupShareathon.Lastsharetimestamp = Helper.DateExtension.ConvertToUnixTimestamp(DateTime.UtcNow); MongoRepository _ShareathonRepository = new MongoRepository("GroupShareathon", _appSettings); profileids = pageid.TrimEnd(',').Split(','); groupids = FacebookGroupId.TrimEnd(',').Split(','); string[] arrgroupids = groupId.Split(','); var ret = _ShareathonRepository.Find <Domain.Socioboard.Models.Mongo.GroupShareathon>(t => profileids.Contains(t.Facebookpageid) && t.Facebookaccountid == Facebookaccountid && t.Userid == userId && arrgroupids.Contains(t.Facebookgroupid)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count > 0) { return("already added"); } else { _ShareathonRepository.Add(_GroupShareathon); return("added successfully"); } }
public IActionResult GetPluginProfile(long groupId) { List <Domain.Socioboard.Helpers.PluginProfile> lstPluginProfile = new List <Domain.Socioboard.Helpers.PluginProfile>(); DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); List <Domain.Socioboard.Models.Groupprofiles> lstGroupprofiles = dbr.Find <Domain.Socioboard.Models.Groupprofiles>(t => t.groupId.Equals(groupId) && (t.profileType == Domain.Socioboard.Enum.SocialProfileType.Facebook || t.profileType == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage || t.profileType == Domain.Socioboard.Enum.SocialProfileType.Twitter)).ToList(); lstGroupprofiles = lstGroupprofiles.GroupBy(t => t.profileId).Select(g => g.First()).ToList(); foreach (var item in lstGroupprofiles) { try { if (item.profileType == Domain.Socioboard.Enum.SocialProfileType.Facebook || item.profileType == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage) { Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = FacebookRepository.getFacebookAccount(item.profileId, _redisCache, dbr); if (_Facebookaccounts != null) { if (!string.IsNullOrEmpty(_Facebookaccounts.AccessToken)) { if (_Facebookaccounts.IsActive) { Domain.Socioboard.Helpers.PluginProfile _sb = new Domain.Socioboard.Helpers.PluginProfile(); _sb.type = "facebook"; _sb.facebookprofile = _Facebookaccounts; _sb.twitterprofile = new Domain.Socioboard.Models.TwitterAccount(); lstPluginProfile.Add(_sb); } } } } if (item.profileType == Domain.Socioboard.Enum.SocialProfileType.Twitter) { Domain.Socioboard.Models.TwitterAccount _TwitterAccount = TwitterRepository.getTwitterAccount(item.profileId, _redisCache, dbr); if (_TwitterAccount != null) { if (_TwitterAccount.isActive) { Domain.Socioboard.Helpers.PluginProfile _sb = new Domain.Socioboard.Helpers.PluginProfile(); _sb.type = "twitter"; _sb.twitterprofile = _TwitterAccount; _sb.facebookprofile = new Domain.Socioboard.Models.Facebookaccounts(); lstPluginProfile.Add(_sb); } } } } catch (Exception ex) { return(Ok(lstPluginProfile)); } } return(Ok(lstPluginProfile)); }
public static string FacebookComposeMessageRss(string message, string accessToken, string FbUserId, string title, string link, string rssFeedId) { string ret = ""; FacebookClient fb = new FacebookClient(); MongoRepository rssfeedRepo = new MongoRepository("RssFeed"); try { var pageAccessToken = FacebookApiHelper.GetPageAccessToken(FbUserId, accessToken, string.Empty); if (string.IsNullOrEmpty(pageAccessToken)) { return(string.Empty); } FacebookApiHelper.PublishPostOnPage(pageAccessToken, FbUserId, message, string.Empty, link); #region Old Methods //fb.AccessToken = accessToken; //System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls; //var args = new Dictionary<string, object>(); //if (message != null) //{ // args["message"] = message; //} //args["link"] = link; //ret = fb.Post("v2.7/" + FbUserId + "/feed", args).ToString(); #endregion var builders = Builders <BsonDocument> .Filter; FilterDefinition <BsonDocument> filter = builders.Eq("strId", rssFeedId); var update = Builders <BsonDocument> .Update.Set("Status", true); rssfeedRepo.Update <Domain.Socioboard.Models.Mongo.RssFeed>(update, filter); Thread.Sleep(1000 * 600); return(ret = "Messages Posted Successfully"); } catch (Exception ex) { if (ex.Message.Contains("Error validating access token: Session has expired on")) { Model.DatabaseRepository dbr = new DatabaseRepository(); Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = dbr.Find <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == FbUserId).First(); _Facebookaccounts.IsActive = false; dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(_Facebookaccounts); } Console.WriteLine(ex.Message); apiHitsCount = MaxapiHitsCount; return(ret = ""); } }
public static string AddPageShareathon(long userId, string FacebookUrl, string FacebookPageId, string Facebookaccountid, int Timeintervalminutes, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr) { Domain.Socioboard.Models.Facebookaccounts objfacebook = Repositories.FacebookRepository.getFacebookAccount(Facebookaccountid, _redisCache, dbr); string pageid = Helper.FacebookHelper.GetFbPageDetails(FacebookUrl, objfacebook.AccessToken); string[] profileids = null; profileids = FacebookPageId.Split(','); string facebookpagename = ""; Domain.Socioboard.Models.Mongo.PageShareathon _Shareathon = new Domain.Socioboard.Models.Mongo.PageShareathon(); _Shareathon.Id = ObjectId.GenerateNewId(); _Shareathon.strId = ObjectId.GenerateNewId().ToString(); _Shareathon.Facebookaccountid = objfacebook.FbUserId; _Shareathon.Facebookusername = objfacebook.FbUserName; _Shareathon.Facebookpageid = FacebookPageId; _Shareathon.FacebookPageUrl = FacebookUrl; _Shareathon.FacebookPageUrlId = pageid.TrimEnd(','); foreach (var item in profileids) { Domain.Socioboard.Models.Facebookaccounts objfacebookpage = Repositories.FacebookRepository.getFacebookAccount(item, _redisCache, dbr); if (objfacebookpage != null) { facebookpagename = objfacebookpage.FbUserName + ',' + facebookpagename; } } _Shareathon.Facebookpagename = facebookpagename.TrimEnd(','); _Shareathon.FacebookStatus = 1; _Shareathon.Timeintervalminutes = Timeintervalminutes; _Shareathon.Userid = userId; _Shareathon.Lastsharetimestamp = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow); MongoRepository _ShareathonRepository = new MongoRepository("Shareathon", _appSettings); var ret = _ShareathonRepository.Find <Domain.Socioboard.Models.Mongo.PageShareathon>(t => t.Facebookpageid == FacebookPageId && t.Facebookaccountid == Facebookaccountid && t.FacebookPageUrl == FacebookUrl && t.Userid == userId && t.FacebookStatus == 1); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count > 0) { return("already added"); } else { _ShareathonRepository.Add(_Shareathon); return("added successfully"); } }
public static int updateFacebookPageFeeds(Domain.Socioboard.Models.Facebookaccounts fbAcc) { apiHitsCount = 0; Model.DatabaseRepository dbr = new DatabaseRepository(); if (fbAcc.LastUpdate.AddHours(1) <= DateTime.UtcNow) { if (fbAcc.IsAccessTokenActive) { dynamic profile = Fbpages.getFbPageData(fbAcc.AccessToken); apiHitsCount++; if (Convert.ToString(profile) != "Invalid Access Token") { try { fbAcc.Friends = (Convert.ToInt64(profile["fan_count"])); } catch (Exception) { fbAcc.Friends = fbAcc.Friends; } try { dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc); } catch { } while (apiHitsCount < MaxapiHitsCount) { SaveFacebookFeeds(fbAcc.AccessToken, fbAcc.FbUserId, fbAcc.FbUserName); SavePageConversations(fbAcc.AccessToken, fbAcc.FbUserId); SaveFacebookPageFeed(fbAcc.AccessToken, fbAcc.FbUserId, fbAcc.FbUserName); // SavePageNotification(fbAcc.AccessToken, fbAcc.FbUserId); } } } } else { apiHitsCount = 0; } return(0); }
private static void daywiseSchedulemessages(object o) { try { Console.WriteLine(Thread.CurrentThread.Name + " Is Entered in Method"); object[] arr = o as object[]; Model.DatabaseRepository dbr = (Model.DatabaseRepository)arr[0]; IGrouping <string, Domain.Socioboard.Models.DaywiseSchedule> items = (IGrouping <string, Domain.Socioboard.Models.DaywiseSchedule>)arr[1]; Domain.Socioboard.Models.Facebookaccounts _facebook = dbr.Find <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == items.Key && t.IsActive).FirstOrDefault(); Domain.Socioboard.Models.User _user = dbr.Single <Domain.Socioboard.Models.User>(t => t.Id == _facebook.UserId); if (_facebook != null) { foreach (var item in items) { try { Console.WriteLine(item.socialprofileName + "Scheduling Started"); FacebookScheduler.PostDaywiseFacebookMessage(item, _facebook, _user); Console.WriteLine(item.socialprofileName + "Scheduling"); } catch (Exception) { } item.scheduleTime = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.DaywiseSchedule>(item); } //_facebook.SchedulerUpdate = DateTime.UtcNow; //dbr.Update<Domain.Socioboard.Models.Facebookaccounts>(_facebook); } } catch (Exception ex) { // Thread.Sleep(60000); } finally { noOfthreadRunning--; objSemaphore.Release(); Console.WriteLine(Thread.CurrentThread.Name + " Is Released"); } }
public void ScheduleFacebookMessage() { while (true) { try { DatabaseRepository dbr = new DatabaseRepository(); List <Domain.Socioboard.Models.ScheduledMessage> lstScheduledMessage = dbr.Find <Domain.Socioboard.Models.ScheduledMessage>(t => t.status == Domain.Socioboard.Enum.ScheduleStatus.Pending && (t.profileType == Domain.Socioboard.Enum.SocialProfileType.Facebook || t.profileType == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage) && t.scheduleTime <= DateTime.UtcNow).ToList(); var newlstScheduledMessage = lstScheduledMessage.GroupBy(t => t.profileId).ToList(); foreach (var items in newlstScheduledMessage) { try { Domain.Socioboard.Models.Facebookaccounts _facebook = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == items.Key && t.IsAccessTokenActive); if (_facebook != null) { foreach (var item in items) { Console.WriteLine(item.socialprofileName + "Scheduling Started"); FacebookScheduler.PostFacebookMessage(item, _facebook); Console.WriteLine(item.socialprofileName + "Scheduling"); } _facebook.SchedulerUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(_facebook); } } catch (Exception ex) { // Thread.Sleep(60000); } } Thread.Sleep(TimeSpan.FromMinutes(1)); } catch (Exception ex) { Console.WriteLine("issue in web api calling" + ex.StackTrace); Thread.Sleep(TimeSpan.FromMinutes(1)); } } }
public void ShceduleConetentStudioFeeds(object o) { MongoRepository mongorepo = new Helper.MongoRepository("ContentFeedsShareathon"); int pageapiHitsCount; object[] arr = o as object[]; ContentStudioShareathonIdData shareathon = (ContentStudioShareathonIdData)arr[0]; Model.DatabaseRepository dbr = (Model.DatabaseRepository)arr[1]; MongoRepository _ShareathonRepository = (MongoRepository)arr[2]; string[] ids = shareathon.FbPageId.Split(','); foreach (string id in ids) { try { pageapiHitsCount = 0; // List<ContentFeedsShareathon> lstcontent = new List<ContentFeedsShareathon>(); Domain.Socioboard.Models.Facebookaccounts lstFbAcc = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == id); Domain.Socioboard.Models.Facebookaccounts fbAcc = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.UserId == lstFbAcc.UserId); Domain.Socioboard.Models.Facebookaccounts facebookPage = null; MongoRepository mongoshare = new Helper.MongoRepository("ContentFeedsShareathon"); if (lstFbAcc != null) { facebookPage = lstFbAcc; } if (facebookPage != null) { if (pageapiHitsCount < pageMaxapiHitsCount) { // var lstcontent = mongorepo.Find<ContentFeedsShareathon>(t => t.FbPageId == id && t.UserId == fbAcc.UserId && t.status == 0); var resultshare = mongorepo.Find <ContentFeedsShareathon>(t => t.FbPageId == shareathon.FbPageId && t.Status == false); var task = Task.Run(async() => { return(await resultshare); }); int count = task.Result.Count; var feedsData = task.Result.ToList(); if (facebookPage.contenetShareathonUpdate.AddHours(1) <= DateTime.UtcNow) { if (count != 0) { pageapiHitsCount++; //!shareathon.FbPageId.Equals(obj.FbPageId) && !shareathon.postId.Equals(obj.postId) foreach (var obj in feedsData) { try { DateTime dt = SBHelper.ConvertFromUnixTimestamp(obj.lastsharestamp); dt = dt.AddMinutes(obj.Timeintervalminutes); if ((obj.Status == false && SBHelper.ConvertToUnixTimestamp(dt) <= SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow))) { string ret = Helper.FBPostContentFeeds.FacebookComposeMessageRss(obj.title, facebookPage.AccessToken, facebookPage.FbUserId, "", obj.postUrl, obj.postId); if (ret == "Messages Posted Successfully") { obj.Status = true; shareathon.Status = true; FilterDefinition <BsonDocument> filter = new BsonDocument("strId", obj.strId); var update = Builders <BsonDocument> .Update.Set("Status", true); mongorepo.Update <Domain.Socioboard.Models.Mongo.ContentFeedsShareathon>(update, filter); FilterDefinition <BsonDocument> filterId = new BsonDocument("strId", shareathon.strId); var updateId = Builders <BsonDocument> .Update.Set("Status", true); mongorepo.Update <Domain.Socioboard.Models.Mongo.ContentStudioShareathonIdData>(updateId, filterId); } if (!string.IsNullOrEmpty(ret)) { Thread.Sleep(1000 * 60 * shareathon.Timeintervalminutes); } } } catch { pageapiHitsCount = pageMaxapiHitsCount; } } fbAcc.contenetShareathonUpdate = DateTime.UtcNow; facebookPage.contenetShareathonUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc); dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(facebookPage); } else { FilterDefinition <BsonDocument> filter = new BsonDocument("strId", shareathon.strId); var update = Builders <BsonDocument> .Update.Set("Status", false); _ShareathonRepository.Update <Domain.Socioboard.Models.Mongo.ContentFeedsShareathon>(update, filter); } } else { pageapiHitsCount = 0; } } } } catch { pageapiHitsCount = pageMaxapiHitsCount; } } }
public IActionResult AddProfileToGroup(string profileId, long groupId, long userId, Domain.Socioboard.Enum.SocialProfileType profileType) { DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); List <Domain.Socioboard.Models.Groupprofiles> lstGroupProfiles = GroupProfilesRepository.getGroupProfiles(groupId, _redisCache, dbr); if (lstGroupProfiles.Where(t => t.profileId.Equals(profileId)).Count() > 0) { return(BadRequest("profile already added")); } else { Domain.Socioboard.Models.Groups grp = dbr.Find <Domain.Socioboard.Models.Groups>(t => t.id == groupId).FirstOrDefault(); if (grp == null) { return(BadRequest("Invalid groupId")); } else { Domain.Socioboard.Models.Groupprofiles grpProfile = new Domain.Socioboard.Models.Groupprofiles(); if (profileType == Domain.Socioboard.Enum.SocialProfileType.Facebook || profileType == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage || profileType == Domain.Socioboard.Enum.SocialProfileType.FacebookPublicPage) { Domain.Socioboard.Models.Facebookaccounts fbAcc = Repositories.FacebookRepository.getFacebookAccount(profileId, _redisCache, dbr); if (fbAcc == null) { return(BadRequest("Invalid profileId")); } if (fbAcc.UserId != userId) { return(BadRequest("profile is added by other user")); } grpProfile.profileName = fbAcc.FbUserName; grpProfile.profileOwnerId = userId; grpProfile.profilePic = "http://graph.facebook.com/" + fbAcc.FbUserId + "/picture?type=small"; grpProfile.profileType = profileType; } else if (profileType == Domain.Socioboard.Enum.SocialProfileType.Twitter) { Domain.Socioboard.Models.TwitterAccount twtAcc = Repositories.TwitterRepository.getTwitterAccount(profileId, _redisCache, dbr); if (twtAcc == null) { return(BadRequest("Invalid profileId")); } if (twtAcc.userId != userId) { return(BadRequest("profile is added by other user")); } grpProfile.profileName = twtAcc.twitterScreenName; grpProfile.profileOwnerId = userId; grpProfile.profilePic = twtAcc.profileImageUrl; grpProfile.profileType = Domain.Socioboard.Enum.SocialProfileType.Twitter; } else if (profileType == Domain.Socioboard.Enum.SocialProfileType.GPlus) { Domain.Socioboard.Models.Googleplusaccounts gplusAccount = Repositories.GplusRepository.getGPlusAccount(profileId, _redisCache, dbr); if (gplusAccount == null) { return(BadRequest("Invalid ProfileId")); } if (gplusAccount.UserId != userId) { return(BadRequest("profile is added by other user")); } grpProfile.profileName = gplusAccount.GpUserName; grpProfile.profileOwnerId = userId; grpProfile.profilePic = gplusAccount.GpProfileImage; } else if (profileType == Domain.Socioboard.Enum.SocialProfileType.Instagram) { Domain.Socioboard.Models.Instagramaccounts _Instagramaccounts = Repositories.InstagramRepository.getInstagramAccount(profileId, _redisCache, dbr); if (_Instagramaccounts == null) { return(BadRequest("Invalid ProfileId")); } if (_Instagramaccounts.UserId != userId) { return(BadRequest("profile is added by other user")); } grpProfile.profileName = _Instagramaccounts.InsUserName; grpProfile.profileOwnerId = userId; grpProfile.profilePic = _Instagramaccounts.ProfileUrl; } else if (profileType == Domain.Socioboard.Enum.SocialProfileType.LinkedIn) { Domain.Socioboard.Models.LinkedInAccount _LinkedInAccount = Repositories.LinkedInAccountRepository.getLinkedInAccount(profileId, _redisCache, dbr); if (_LinkedInAccount == null) { return(BadRequest("Invalid ProfileId")); } if (_LinkedInAccount.UserId != userId) { return(BadRequest("profile is added by other user")); } grpProfile.profileName = _LinkedInAccount.LinkedinUserName; grpProfile.profileOwnerId = userId; grpProfile.profilePic = _LinkedInAccount.ProfileImageUrl; } else if (profileType == Domain.Socioboard.Enum.SocialProfileType.LinkedInComapanyPage) { Domain.Socioboard.Models.LinkedinCompanyPage _LinkedInAccount = Repositories.LinkedInAccountRepository.getLinkedinCompanyPage(profileId, _redisCache, dbr); if (_LinkedInAccount == null) { return(BadRequest("Invalid ProfileId")); } if (_LinkedInAccount.UserId != userId) { return(BadRequest("profile is added by other user")); } grpProfile.profileName = _LinkedInAccount.LinkedinPageName; grpProfile.profileOwnerId = userId; grpProfile.profilePic = _LinkedInAccount.LogoUrl; } grpProfile.entryDate = DateTime.UtcNow; grpProfile.groupId = grp.id; grpProfile.profileId = profileId; grpProfile.profileType = profileType; dbr.Add <Domain.Socioboard.Models.Groupprofiles>(grpProfile); //codes to clear cache _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupProfiles + groupId); //end codes to clear cache return(Ok("Added Successfully")); } } }
public static string postRssFeeds(Domain.Socioboard.Models.Mongo.Rss _rss) { MongoRepository mongorepo = new MongoRepository("RssFeed"); DatabaseRepository dbr = new DatabaseRepository(); List <Domain.Socioboard.Models.Mongo.RssFeed> objrssdata = new List <Domain.Socioboard.Models.Mongo.RssFeed>(); var ret = mongorepo.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.ProfileId == _rss.ProfileId && t.Status == false); var task = Task.Run(async() => { return(await ret); }); IList <Domain.Socioboard.Models.Mongo.RssFeed> _objrssdata = task.Result; objrssdata = _objrssdata.ToList(); foreach (var item in objrssdata) { if (_objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.Facebook || _objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage) { try { if (item.Status == false) { Domain.Socioboard.Models.Facebookaccounts lstFbAcc = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId.Equals(item.ProfileId)); // Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(item.ProfileId, _redisCache, dbr); string msg = FacebookComposeMessageRss(item.Message, lstFbAcc.AccessToken, lstFbAcc.FbUserId, item.Title, item.Link, item.strId); var builders = Builders <BsonDocument> .Filter; FilterDefinition <BsonDocument> filter = builders.Eq("strId", item.strId); var update = Builders <BsonDocument> .Update.Set("Status", true); mongorepo.Update <Domain.Socioboard.Models.Mongo.RssFeed>(update, filter); var resu = mongorepo.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.strId == item.strId); var tasks = Task.Run(async() => { return(await resu); }); IList <Domain.Socioboard.Models.Mongo.RssFeed> _rssdata = tasks.Result; Console.WriteLine("rss Data"); Console.WriteLine(_rssdata); } } catch (Exception ex) { return(""); } Thread.Sleep(20 * 1000); // for 10 min stop } //else if (_objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.Twitter) //{ // try // { // string message = ""; // string UrlShortendata = GetShortenUrl(item.Link, _appSettings); // string shortenUrl = string.Empty; // try // { // JObject JData = JObject.Parse(UrlShortendata); // if (JData["status_txt"].ToString() == "OK") // shortenUrl = JData["data"]["url"].ToString(); // } // catch (Exception ex) // { // } // if (item.Message.Length > 115) // { // message = item.Message.Substring(0, 115); // } // else // { // message = item.Message; // } // message += " " + shortenUrl; // Domain.Socioboard.Models.TwitterAccount _TwitterAccount = Repositories.TwitterRepository.getTwitterAccount(item.ProfileId, _redisCache, dbr); // TwitterComposeMessageRss(message, _TwitterAccount.oAuthToken, _TwitterAccount.oAuthSecret, _TwitterAccount.twitterUserId, _TwitterAccount.twitterScreenName, item.strId); // } // catch (Exception ex) // { // return ""; // } // Thread.Sleep(10 * 000); //} } return(""); // string facebookdata = FacebookComposeMessageRss(objRssFeeds.Message, _Facebookaccounts.AccessToken, _Facebookaccounts.FbUserId, objRssFeeds.Title, objRssFeeds.Link, objRssFeeds.strId); }
public static string PostRssfeed(string profileId, string Url, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr, Helper.Cache _redisCache) { string ret = ""; string[] lstProfileIds = null; if (profileId != null) { lstProfileIds = profileId.Split(','); profileId = lstProfileIds[0]; } foreach (var itemPrf in lstProfileIds) { string prId = itemPrf.Substring(5, itemPrf.Length - 5); MongoRepository _RssFeedRepository = new MongoRepository("RssFeed", _appSettings); List <Domain.Socioboard.Models.Mongo.RssFeed> objrssdata = new List <Domain.Socioboard.Models.Mongo.RssFeed>(); var rt = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.ProfileId.Equals(prId) && t.Status == false); var task = Task.Run(async() => { return(await rt); }); IList <Domain.Socioboard.Models.Mongo.RssFeed> _objrssdata = task.Result; objrssdata = _objrssdata.ToList(); foreach (var item in objrssdata) { if (_objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.Facebook || _objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage) { try { Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(item.ProfileId, _redisCache, dbr); ret = Helper.FacebookHelper.FacebookComposeMessageRss(item.Message, _Facebookaccounts.AccessToken, _Facebookaccounts.FbUserId, item.Title, item.Link, item.strId, _appSettings); } catch (Exception ex) { return(""); } Thread.Sleep(600000); } else if (_objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.Twitter) { try { string message = ""; string UrlShortendata = GetShortenUrl(item.Link, _appSettings); string shortenUrl = string.Empty; try { JObject JData = JObject.Parse(UrlShortendata); if (JData["status_txt"].ToString() == "OK") { shortenUrl = JData["data"]["url"].ToString(); } } catch (Exception ex) { } if (item.Message.Length > 115) { message = item.Message.Substring(0, 115); } else { message = item.Message; } message += " " + shortenUrl; Domain.Socioboard.Models.TwitterAccount _TwitterAccount = Repositories.TwitterRepository.getTwitterAccount(item.ProfileId, _redisCache, dbr); ret = Helper.TwitterHelper.TwitterComposeMessageRss(message, _TwitterAccount.oAuthToken, _TwitterAccount.oAuthSecret, _TwitterAccount.twitterUserId, _TwitterAccount.twitterScreenName, item.strId, _appSettings); } catch (Exception ex) { return(""); } Thread.Sleep(600000); } } return(ret); } return(ret); }
public int updateFacebookFeeds(Domain.Socioboard.Models.Facebookaccounts fbAcc) { apiHitsCount = 0; Model.DatabaseRepository dbr = new DatabaseRepository(); if (fbAcc.LastUpdate.AddHours(1) <= DateTime.UtcNow) { if (fbAcc.IsAccessTokenActive) { dynamic feeds = Socioboard.Facebook.Data.FbUser.getFeeds(fbAcc.AccessToken); dynamic profile = Socioboard.Facebook.Data.FbUser.getFbUser(fbAcc.AccessToken); apiHitsCount++; if (Convert.ToString(profile) != "Invalid Access Token") { fbAcc.Friends = Socioboard.Facebook.Data.FbUser.getFbFriends(fbAcc.AccessToken); apiHitsCount++; try { fbAcc.EmailId = (Convert.ToString(profile["email"])); } catch { fbAcc.EmailId = fbAcc.EmailId; } try { fbAcc.ProfileUrl = (Convert.ToString(profile["link"])); } catch { fbAcc.ProfileUrl = fbAcc.ProfileUrl; } try { fbAcc.gender = (Convert.ToString(profile["gender"])); } catch { fbAcc.gender = fbAcc.gender; } try { fbAcc.bio = (Convert.ToString(profile["bio"])); } catch { fbAcc.bio = fbAcc.bio; } try { fbAcc.about = (Convert.ToString(profile["about"])); } catch { fbAcc.about = fbAcc.about; } try { fbAcc.coverPic = (Convert.ToString(profile["cover"]["source"])); } catch { fbAcc.coverPic = fbAcc.coverPic; } try { fbAcc.birthday = (Convert.ToString(profile["birthday"])); } catch { fbAcc.birthday = fbAcc.birthday; } try { JArray arry = JArray.Parse(profile["education"]); if (arry.Count > 0) { fbAcc.college = Convert.ToString(arry[arry.Count - 1]["school"]["name"]); fbAcc.education = Convert.ToString(arry[arry.Count - 1]["concentration"]["name"]); } } catch { fbAcc.college = fbAcc.college; fbAcc.education = fbAcc.education; } try { JArray arry = JArray.Parse(profile["work"]); if (arry.Count > 0) { fbAcc.workPosition = Convert.ToString(arry[0]["position"]["name"]); fbAcc.workCompany = Convert.ToString(arry[0]["employer"]["name"]); } } catch { fbAcc.workPosition = fbAcc.workPosition; fbAcc.workCompany = fbAcc.workCompany; } try { dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc); } catch { } while (apiHitsCount < MaxapiHitsCount && feeds != null && feeds["data"] != null) { apiHitsCount++; if (feeds["data"] != null) { Console.WriteLine(feeds["data"]); foreach (var result in feeds["data"]) { MongoFacebookFeed objFacebookFeed = new MongoFacebookFeed(); objFacebookFeed.Type = "fb_feed"; objFacebookFeed.ProfileId = fbAcc.FbUserId; objFacebookFeed.Id = MongoDB.Bson.ObjectId.GenerateNewId(); try { objFacebookFeed.FromProfileUrl = "http://graph.facebook.com/" + result["from"]["id"] + "/picture?type=small"; } catch (Exception) { objFacebookFeed.FromProfileUrl = "http://graph.facebook.com/" + fbAcc.FbUserId + "/picture?type=small"; } try { objFacebookFeed.FromName = result["from"]["name"].ToString(); } catch (Exception) { objFacebookFeed.FromName = fbAcc.FbUserName; } try { objFacebookFeed.FromId = result["from"]["id"].ToString(); } catch (Exception) { objFacebookFeed.FromId = fbAcc.FbUserId; } objFacebookFeed.FeedId = result["id"].ToString(); objFacebookFeed.FeedDate = DateTime.Parse(result["created_time"].ToString()).ToString("yyyy/MM/dd HH:mm:ss"); try { objFacebookFeed.FbComment = "http://graph.facebook.com/" + result["id"] + "/comments"; objFacebookFeed.FbLike = "http://graph.facebook.com/" + result["id"] + "/likes"; } catch (Exception) { } try { objFacebookFeed.Likecount = result["likes"]["summary"]["total_count"].ToString(); } catch (Exception ex) { } try { objFacebookFeed.Commentcount = result["comments"]["summary"]["total_count"].ToString(); } catch (Exception ex) { } try { objFacebookFeed.postType = result["type"].ToString(); } catch { objFacebookFeed.postType = "status"; } try { objFacebookFeed.postingFrom = result["application"]["name"].ToString(); } catch { objFacebookFeed.postingFrom = "Facebook"; } try { objFacebookFeed.Picture = result["picture"].ToString(); } catch (Exception ex) { objFacebookFeed.Picture = ""; } string message = string.Empty; try { if (result["message"] != null) { message = result["message"]; } } catch (Exception ex) { try { if (result["description"] != null) { message = result["description"]; } } catch (Exception exx) { try { if (result["story"] != null) { message = result["story"]; } } catch (Exception exxx) { message = string.Empty; } } } if (message == null) { message = ""; } objFacebookFeed.FeedDescription = message; objFacebookFeed.EntryDate = DateTime.UtcNow.ToString("yyyy/MM/dd HH:mm:ss"); objFacebookFeed._facebookComment = FbPostComments(objFacebookFeed.FeedId, fbAcc.AccessToken); try { MongoRepository mongorepo = new MongoRepository("MongoFacebookFeed"); var ret = mongorepo.Find <MongoFacebookFeed>(t => t.FeedId == objFacebookFeed.FeedId && t.ProfileId == objFacebookFeed.ProfileId); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { mongorepo.Add <MongoFacebookFeed>(objFacebookFeed); } else { try { FilterDefinition <BsonDocument> filter = new BsonDocument("FeedId", objFacebookFeed.FeedId); var update = Builders <BsonDocument> .Update.Set("postType", objFacebookFeed.postType).Set("postingFrom", objFacebookFeed.postingFrom).Set("Likecount", objFacebookFeed.Likecount).Set("Commentcount", objFacebookFeed.Commentcount); mongorepo.Update <MongoFacebookFeed>(update, filter); } catch { } } } catch (Exception ex) { //_logger.LogInformation(ex.Message); //_logger.LogError(ex.StackTrace); } if (apiHitsCount < MaxapiHitsCount) { //AddFbPostComments(objFacebookFeed.FeedId, fbAcc.AccessToken); } } } else { apiHitsCount = MaxapiHitsCount; } try { feeds = Socioboard.Facebook.Data.FbUser.fbGet(fbAcc.AccessToken, feeds["paging"]["next"]); } catch { apiHitsCount = MaxapiHitsCount; } } fbAcc.LastUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc); } } } else { apiHitsCount = 0; } return(0); }
public void groupshreathon(object o) { try { object[] arr = o as object[]; GroupShareathon shareathon = (GroupShareathon)arr[0]; Model.DatabaseRepository dbr = (Model.DatabaseRepository)arr[1]; MongoRepository _ShareathonRepository = (MongoRepository)arr[2]; string[] ids = shareathon.Facebookpageid.Split(','); foreach (string id in ids) { try { int groupapiHitsCountNew = 0; Domain.Socioboard.Models.Facebookaccounts fbAcc = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == shareathon.Facebookaccountid); Domain.Socioboard.Models.Facebookaccounts facebookPage = null; Domain.Socioboard.Models.Facebookaccounts lstFbAcc = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == id); if (fbAcc != null) { if (groupapiHitsCountNew < groupMaxapiHitsCount) { string feeds = string.Empty; if (fbAcc.GroupShareathonUpdate.AddHours(1) <= DateTime.UtcNow) { feeds = Socioboard.Facebook.Data.Fbpages.getFacebookRecentPost(fbAcc.AccessToken, id); string feedId = string.Empty; if (!string.IsNullOrEmpty(feeds) && !feeds.Equals("[]")) { groupapiHitsCountNew++; JObject fbpageNotes = JObject.Parse(feeds); foreach (JObject obj in JArray.Parse(fbpageNotes["data"].ToString())) { try { string feedid = obj["id"].ToString(); feedid = feedid.Split('_')[1]; feedId = feedid + "," + feedId; } catch { } } try { DateTime dt = SBHelper.ConvertFromUnixTimestamp(shareathon.Lastsharetimestamp); dt = dt.AddMinutes(shareathon.Timeintervalminutes); if (shareathon.Lastpostid == null || (!shareathon.Lastpostid.Equals(feedId) && SBHelper.ConvertToUnixTimestamp(dt) <= SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow))) { ShareFeedonGroup(fbAcc.AccessToken, feedId, id, "", shareathon.Facebookgroupid, shareathon.Timeintervalminutes, shareathon.Facebookaccountid, shareathon.Lastsharetimestamp, shareathon.Facebooknameid); } fbAcc.GroupShareathonUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc); } catch (Exception ex) { } } else { FilterDefinition <BsonDocument> filter = new BsonDocument("strId", shareathon.strId); var update = Builders <BsonDocument> .Update.Set("FacebookStatus", 1); _ShareathonRepository.Update <Domain.Socioboard.Models.Mongo.GroupShareathon>(update, filter); groupapiHitsCount = groupMaxapiHitsCount; } } else { groupapiHitsCount = 0; } } } } catch { groupapiHitsCount = groupMaxapiHitsCount; } } } catch (Exception e) { groupapiHitsCount = groupMaxapiHitsCount; } finally { noOfthread_groupshreathonRunning--; } }
public void pageshreathon(object o) { try { object[] arr = o as object[]; PageShareathon shareathon = (PageShareathon)arr[0]; Model.DatabaseRepository dbr = (Model.DatabaseRepository)arr[1]; MongoRepository _ShareathonRepository = (MongoRepository)arr[2]; string[] ids = shareathon.Facebookpageid.Split(','); foreach (string id in ids) { try { pageapiHitsCount = 0; Domain.Socioboard.Models.Facebookaccounts fbAcc = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == shareathon.Facebookaccountid); Domain.Socioboard.Models.Facebookaccounts facebookPage = null; Domain.Socioboard.Models.Facebookaccounts lstFbAcc = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == id); if (lstFbAcc != null) { facebookPage = lstFbAcc; } if (facebookPage != null) { if (pageapiHitsCount < pageMaxapiHitsCount) { string feeds = string.Empty; if (facebookPage.PageShareathonUpdate.AddHours(1) <= DateTime.UtcNow) { feeds = Socioboard.Facebook.Data.Fbpages.getFacebookRecentPost(fbAcc.AccessToken, facebookPage.FbUserId); string feedId = string.Empty; if (!string.IsNullOrEmpty(feeds) && !feeds.Equals("[]")) { pageapiHitsCount++; JObject fbpageNotes = JObject.Parse(feeds); foreach (JObject obj in JArray.Parse(fbpageNotes["data"].ToString())) { try { feedId = obj["id"].ToString(); feedId = feedId.Split('_')[1]; DateTime dt = SBHelper.ConvertFromUnixTimestamp(shareathon.Lastsharetimestamp); dt = dt.AddMinutes(shareathon.Timeintervalminutes); if ((!shareathon.Lastpostid.Equals(feedId) && SBHelper.ConvertToUnixTimestamp(dt) <= SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow))) { string ret = ShareFeed(fbAcc.AccessToken, feedId, facebookPage.FbUserId, "", fbAcc.FbUserId, facebookPage.FbUserName); if (!string.IsNullOrEmpty(ret)) { Thread.Sleep(1000 * 60 * shareathon.Timeintervalminutes); } } } catch { pageapiHitsCount = pageMaxapiHitsCount; } } fbAcc.PageShareathonUpdate = DateTime.UtcNow; facebookPage.PageShareathonUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc); dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(facebookPage); } else { FilterDefinition <BsonDocument> filter = new BsonDocument("strId", shareathon.strId); var update = Builders <BsonDocument> .Update.Set("FacebookStatus", 1); _ShareathonRepository.Update <Domain.Socioboard.Models.Mongo.PageShareathon>(update, filter); } } else { pageapiHitsCount = 0; } } } } catch { pageapiHitsCount = pageMaxapiHitsCount; } } } catch (Exception e) { pageapiHitsCount = pageMaxapiHitsCount; } finally { noOfthread_pageshreathonRunning--; } }
public static void CreateReports(string ProfileId, string AccessToken, bool is90daysupdated, long userId) { int day = 1; if (!is90daysupdated) { day = 90; } double since = SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow.AddDays(-day)); double until = SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow); JObject pageobj = new JObject(); JArray likesobj = new JArray(); JArray unlikesobj = new JArray(); JArray impressionobj = new JArray(); JArray uniqueobj = new JArray(); JArray facebookstory_typeUrlobj90 = new JArray(); JArray facebookorganicobj90 = new JArray(); JArray facebookviralobj90 = new JArray(); JArray facebookpaidobj90 = new JArray(); JArray facebookimpressionbyageobj = new JArray(); JArray facebookstoriesobj = new JArray(); JArray facebooksharing_typeUrlobj = new JArray(); JArray facebookagegenderUrlobj = new JArray(); JObject jounlikes = new JObject(); JObject joimpressionobj = new JObject(); JObject jouniqueobj = new JObject(); JObject jofacebookstory_typeUrlobj = new JObject(); JObject jofacebookorganicobj = new JObject(); JObject jofacebookviralobj = new JObject(); JObject jofacebookpaidobj = new JObject(); JObject jofacebookimpressionbyageobj = new JObject(); JObject jofacebookstoriesobj = new JObject(); JObject jofacebooksharing_typeUrlobj = new JObject(); JObject jofacebookagegenderUrlobj = new JObject(); MongoRepository mongorepofb = new MongoRepository("FacebookPasswordChangeUserDetail"); string errormsg = null; string ispasschange = null; string msg = null; #region likes try { string facebookpageUrl = "https://graph.facebook.com/v2.7/" + ProfileId + "?fields=fan_count,name,talking_about_count&access_token=" + AccessToken; string outputfacepageUrl = getFacebookResponse(facebookpageUrl); pageobj = JObject.Parse(outputfacepageUrl); } catch (Exception ex) { } try { string facebooknewfanUrl = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_fan_adds?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken; string outputface = getFacebookResponse(facebooknewfanUrl); ispasschange = outputface; likesobj = JArray.Parse(JArray.Parse(JObject.Parse(outputface)["data"].ToString())[0]["values"].ToString()); } catch (Exception ex) { errormsg = ispasschange; msg = getBetween(errormsg, "e\":\"", ":"); } #endregion #region unlikes try { string facebookunlikjeUrl = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_fan_removes?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken; string outputfaceunlike = getFacebookResponse(facebookunlikjeUrl); ispasschange = outputfaceunlike; unlikesobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceunlike)["data"].ToString())[0]["values"].ToString()); } catch (Exception ex) { errormsg = ispasschange; } #endregion #region impression try { string facebookimpressionUrl = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken; string outputfaceunimpression = getFacebookResponse(facebookimpressionUrl); impressionobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceunimpression)["data"].ToString())[0]["values"].ToString()); } catch (Exception ex) { } #endregion #region impression user try { string facebookuniqueUrl = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions_unique?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken; string outputfaceununoque = getFacebookResponse(facebookuniqueUrl); uniqueobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceununoque)["data"].ToString())[0]["values"].ToString()); } catch (Exception ex) { } #endregion #region impression breakdown try { string facebookstory_typeUrl90 = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions_by_story_type?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken; string outputfaceunstory_type90 = getFacebookResponse(facebookstory_typeUrl90); facebookstory_typeUrlobj90 = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceunstory_type90)["data"].ToString())[0]["values"].ToString()); } catch (Exception ex) { } #endregion #region impression breakdown organic try { string facebookorganic90 = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions_organic?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken; string outputfaceorganic90 = getFacebookResponse(facebookorganic90); facebookorganicobj90 = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceorganic90)["data"].ToString())[0]["values"].ToString()); } catch (Exception ex) { } #endregion #region imression breakdowm viral try { string facebookviral90 = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions_viral?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken; string outputfaceviral90 = getFacebookResponse(facebookviral90); facebookviralobj90 = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceviral90)["data"].ToString())[0]["values"].ToString()); } catch (Exception ex) { } #endregion #region impression breakdown paid try { string facebookpaid90 = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions_paid?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken; string outputfacepaid90 = getFacebookResponse(facebookpaid90); facebookpaidobj90 = JArray.Parse(JArray.Parse(JObject.Parse(outputfacepaid90)["data"].ToString())[0]["values"].ToString()); } catch (Exception ex) { } #endregion #region page imression by age and gender try { string facebookimpressionbyage = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions_by_age_gender_unique?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken; string outputfaceimpressionbyage = getFacebookResponse(facebookimpressionbyage); facebookimpressionbyageobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceimpressionbyage)["data"].ToString())[0]["values"].ToString()); } catch (Exception ex) { } #endregion #region story sharing try { string facebookstories = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_stories?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken; string outputfacestories = getFacebookResponse(facebookstories); facebookstoriesobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfacestories)["data"].ToString())[0]["values"].ToString()); } catch (Exception ex) { } #endregion #region sroty sharing by share type try { string facebooksharing_typeUrl = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_stories_by_story_type?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken; string outputfaceunsharing_type = getFacebookResponse(facebooksharing_typeUrl); facebooksharing_typeUrlobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceunsharing_type)["data"].ToString())[0]["values"].ToString()); } catch (Exception ex) { } #endregion #region story sharing by age and gender try { string facebooksharingagegenderUrl = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_storytellers_by_age_gender?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken; string outputfaceunagegender = getFacebookResponse(facebooksharingagegenderUrl); facebookagegenderUrlobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceunagegender)["data"].ToString())[0]["values"].ToString()); } catch (Exception ex) { } try { if (msg == "Error validating access token") { DatabaseRepository dbr = new DatabaseRepository(); Domain.Socioboard.Models.Facebookaccounts lstFbAcc = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == ProfileId); Domain.Socioboard.Models.User lstUser = dbr.Single <Domain.Socioboard.Models.User>(t => t.Id == lstFbAcc.UserId); Domain.Socioboard.Models.Mongo.FacebookPasswordChangeUserDetail fbdetailpass = new Domain.Socioboard.Models.Mongo.FacebookPasswordChangeUserDetail(); fbdetailpass.Id = ObjectId.GenerateNewId(); fbdetailpass.strId = ObjectId.GenerateNewId().ToString(); fbdetailpass.userId = userId; fbdetailpass.profileId = ProfileId; fbdetailpass.message = msg; fbdetailpass.FbEmail = lstUser.EmailId; fbdetailpass.dateValue = DateTime.Today.ToString(); fbdetailpass.status = false; try { MongoRepository mongorepo = new MongoRepository("FacebookPasswordChangeUserDetail"); var ret = mongorepo.Find <Domain.Socioboard.Models.Mongo.FacebookPasswordChangeUserDetail>(t => t.profileId == fbdetailpass.profileId); var task = Task.Run(async() => { return(await ret); }); if (task.Result != null) { if (task.Result.Count() < 1) { mongorepo.Add <Domain.Socioboard.Models.Mongo.FacebookPasswordChangeUserDetail>(fbdetailpass); } } } catch (Exception ex) { } } } catch (Exception ex) { } #endregion foreach (JObject obj in likesobj) { Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports facebookReportViewModal = new Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports(); string key = obj["end_time"].ToString(); try { jounlikes = unlikesobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key); } catch (Exception ex) { } try { joimpressionobj = impressionobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key); } catch (Exception ex) { } try { jouniqueobj = uniqueobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key); } catch (Exception ex) { } try { jofacebookstory_typeUrlobj = facebookstory_typeUrlobj90.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key); } catch (Exception ex) { } try { jofacebookorganicobj = facebookorganicobj90.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key); } catch (Exception ex) { } try { jofacebookviralobj = facebookviralobj90.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key); } catch (Exception ex) { } try { jofacebookpaidobj = facebookpaidobj90.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key); } catch (Exception ex) { } try { jofacebookimpressionbyageobj = facebookimpressionbyageobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key); } catch (Exception ex) { } try { jofacebookstoriesobj = facebookstoriesobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key); } catch (Exception ex) { } try { jofacebooksharing_typeUrlobj = facebooksharing_typeUrlobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key); } catch (Exception ex) { } try { jofacebookagegenderUrlobj = facebookagegenderUrlobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key); } catch (Exception ex) { } DateTime dt = DateTime.Parse(key).Date; facebookReportViewModal.pageId = ProfileId; facebookReportViewModal.date = SBHelper.ConvertToUnixTimestamp(dt); try { facebookReportViewModal.totalLikes = pageobj["fan_count"].ToString(); } catch { facebookReportViewModal.totalLikes = "0"; } try { facebookReportViewModal.name = pageobj["name"].ToString(); } catch { facebookReportViewModal.name = ""; } try { facebookReportViewModal.talkingAbout = pageobj["talking_about_count"].ToString(); } catch { facebookReportViewModal.talkingAbout = "0"; } try { facebookReportViewModal.perDayLikes = obj["value"].ToString(); } catch { facebookReportViewModal.perDayLikes = "0"; } try { facebookReportViewModal.likes = Int32.Parse(obj["value"].ToString()); } catch { facebookReportViewModal.likes = 0; } try { facebookReportViewModal.unlikes = Int32.Parse(jounlikes["value"].ToString()); } catch { facebookReportViewModal.unlikes = 0; } try { facebookReportViewModal.perDayUnlikes = jounlikes["value"].ToString(); } catch { facebookReportViewModal.perDayUnlikes = "0"; } try { facebookReportViewModal.impression = Int32.Parse(joimpressionobj["value"].ToString()); } catch { facebookReportViewModal.impression = 0; } try { facebookReportViewModal.perDayImpression = joimpressionobj["value"].ToString(); } catch { facebookReportViewModal.perDayImpression = "0"; } try { facebookReportViewModal.uniqueUser = Int32.Parse(jouniqueobj["value"].ToString()); } catch { facebookReportViewModal.uniqueUser = 0; } try { facebookReportViewModal.uniqueUser = Int32.Parse(jouniqueobj["value"].ToString()); } catch { facebookReportViewModal.uniqueUser = 0; } try { facebookReportViewModal.impressionFans = Int32.Parse(jofacebookstory_typeUrlobj["value"]["fan"].ToString()); } catch { facebookReportViewModal.impressionFans = 0; } try { facebookReportViewModal.impressionPagePost = Int32.Parse(jofacebookstory_typeUrlobj["value"]["page post"].ToString()); } catch { facebookReportViewModal.impressionPagePost = 0; } try { facebookReportViewModal.impressionuserPost = Int32.Parse(jofacebookstory_typeUrlobj["value"]["user post"].ToString()); } catch { facebookReportViewModal.impressionuserPost = 0; } try { facebookReportViewModal.impressionCoupn = Int32.Parse(jofacebookstory_typeUrlobj["value"]["coupon"].ToString()); } catch { facebookReportViewModal.impressionCoupn = 0; } try { facebookReportViewModal.impressionOther = Int32.Parse(jofacebookstory_typeUrlobj["value"]["other"].ToString()); } catch { facebookReportViewModal.impressionOther = 0; } try { facebookReportViewModal.impressionMention = Int32.Parse(jofacebookstory_typeUrlobj["value"]["mention"].ToString()); } catch { facebookReportViewModal.impressionMention = 0; } try { facebookReportViewModal.impressionCheckin = Int32.Parse(jofacebookstory_typeUrlobj["value"]["checkin"].ToString()); } catch { facebookReportViewModal.impressionCheckin = 0; } try { facebookReportViewModal.impressionQuestion = Int32.Parse(jofacebookstory_typeUrlobj["value"]["question"].ToString()); } catch { facebookReportViewModal.impressionQuestion = 0; } try { facebookReportViewModal.impressionEvent = Int32.Parse(jofacebookstory_typeUrlobj["value"]["event"].ToString()); } catch { facebookReportViewModal.impressionEvent = 0; } try { facebookReportViewModal.viral = Int32.Parse(jofacebookviralobj["value"].ToString()); } catch { facebookReportViewModal.viral = 0; } try { facebookReportViewModal.organic = Int32.Parse(jofacebookorganicobj["value"].ToString()); } catch { facebookReportViewModal.organic = 0; } try { facebookReportViewModal.paid = Int32.Parse(jofacebookpaidobj["value"].ToString()); } catch { facebookReportViewModal.paid = 0; } try { facebookReportViewModal.f_13_17 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.13-17"].ToString()); } catch { facebookReportViewModal.f_13_17 = 0; } try { facebookReportViewModal.f_18_24 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.18-24"].ToString()); } catch { facebookReportViewModal.f_18_24 = 0; } try { facebookReportViewModal.f_25_34 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.25-34"].ToString()); } catch { facebookReportViewModal.f_25_34 = 0; } try { facebookReportViewModal.f_35_44 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.35-44"].ToString()); } catch { facebookReportViewModal.f_35_44 = 0; } try { facebookReportViewModal.f_45_54 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.45-54"].ToString()); } catch { facebookReportViewModal.f_45_54 = 0; } try { facebookReportViewModal.f_55_64 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.55-64"].ToString()); } catch { facebookReportViewModal.f_55_64 = 0; } try { facebookReportViewModal.f_65 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.65+"].ToString()); } catch { facebookReportViewModal.f_65 = 0; } try { facebookReportViewModal.m_13_17 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.13-17"].ToString()); } catch { facebookReportViewModal.m_13_17 = 0; } try { facebookReportViewModal.m_18_24 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.18-24"].ToString()); } catch { facebookReportViewModal.m_18_24 = 0; } try { facebookReportViewModal.m_25_34 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.25-34"].ToString()); } catch { facebookReportViewModal.m_25_34 = 0; } try { facebookReportViewModal.m_35_44 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.35-44"].ToString()); } catch { facebookReportViewModal.m_35_44 = 0; } try { facebookReportViewModal.m_45_54 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.45-54"].ToString()); } catch { facebookReportViewModal.m_45_54 = 0; } try { facebookReportViewModal.m_55_64 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.55-64"].ToString()); } catch { facebookReportViewModal.m_55_64 = 0; } try { facebookReportViewModal.m_65 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.65+"].ToString()); } catch { facebookReportViewModal.m_65 = 0; } try { facebookReportViewModal.storyShare = Int32.Parse(jofacebookstoriesobj["value"].ToString()); } catch { facebookReportViewModal.storyShare = 0; } try { facebookReportViewModal.perDayStoryShare = jofacebookstoriesobj["value"].ToString(); } catch { facebookReportViewModal.perDayStoryShare = "0"; } try { facebookReportViewModal.story_Fans = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["fan"].ToString()); } catch { facebookReportViewModal.story_Fans = 0; } try { facebookReportViewModal.story_PagePost = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["page post"].ToString()); } catch { facebookReportViewModal.story_PagePost = 0; } try { facebookReportViewModal.story_UserPost = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["user post"].ToString()); } catch { facebookReportViewModal.story_UserPost = 0; } try { facebookReportViewModal.story_Question = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["question"].ToString()); } catch { facebookReportViewModal.story_Question = 0; } try { facebookReportViewModal.story_Mention = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["mention"].ToString()); } catch { facebookReportViewModal.story_Mention = 0; } try { facebookReportViewModal.story_Other = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["other"].ToString()); } catch { facebookReportViewModal.story_Other = 0; } try { facebookReportViewModal.story_Coupon = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["coupon"].ToString()); } catch { facebookReportViewModal.story_Coupon = 0; } try { facebookReportViewModal.story_Event = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["event"].ToString()); } catch { facebookReportViewModal.story_Event = 0; } try { facebookReportViewModal.story_Checkin = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["checkin"].ToString()); } catch { facebookReportViewModal.story_Checkin = 0; } try { facebookReportViewModal.sharing_F_13_17 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.13-17"].ToString()); } catch { facebookReportViewModal.sharing_F_13_17 = 0; } try { facebookReportViewModal.sharing_F_18_24 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.18-24"].ToString()); } catch { facebookReportViewModal.sharing_F_18_24 = 0; } try { facebookReportViewModal.sharing_F_25_34 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.25-34"].ToString()); } catch { facebookReportViewModal.sharing_F_25_34 = 0; } try { facebookReportViewModal.sharing_F_35_44 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.35-44"].ToString()); } catch { facebookReportViewModal.sharing_F_35_44 = 0; } try { facebookReportViewModal.sharing_F_45_54 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.45-54"].ToString()); } catch { facebookReportViewModal.sharing_F_45_54 = 0; } try { facebookReportViewModal.sharing_F_55_64 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.55-64"].ToString()); } catch { facebookReportViewModal.sharing_F_55_64 = 0; } try { facebookReportViewModal.sharing_F_65 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.65+"].ToString()); } catch { facebookReportViewModal.sharing_F_65 = 0; } try { facebookReportViewModal.sharing_M_13_17 = Int32.Parse(jofacebookagegenderUrlobj["value"]["M.13-17"].ToString()); } catch { facebookReportViewModal.sharing_M_13_17 = 0; } try { facebookReportViewModal.sharing_M_18_24 = Int32.Parse(jofacebookagegenderUrlobj["value"]["M.18-24"].ToString()); } catch { facebookReportViewModal.sharing_M_18_24 = 0; } try { facebookReportViewModal.sharing_M_25_34 = Int32.Parse(jofacebookagegenderUrlobj["value"]["M.25-34"].ToString()); } catch { facebookReportViewModal.sharing_M_25_34 = 0; } try { facebookReportViewModal.sharing_M_35_44 = Int32.Parse(jofacebookagegenderUrlobj["value"]["M.35-44"].ToString()); } catch { facebookReportViewModal.sharing_M_35_44 = 0; } try { facebookReportViewModal.sharing_M_45_54 = Int32.Parse(jofacebookagegenderUrlobj["value"]["M.45-54"].ToString()); } catch { facebookReportViewModal.sharing_M_45_54 = 0; } try { facebookReportViewModal.sharing_M_55_64 = Int32.Parse(jofacebookagegenderUrlobj["value"]["M.55-64"].ToString()); } catch { facebookReportViewModal.sharing_M_55_64 = 0; } try { facebookReportViewModal.sharing_M_65 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.65+"].ToString()); } catch { facebookReportViewModal.sharing_M_65 = 0; } facebookReportViewModal.id = ObjectId.GenerateNewId(); try { MongoRepository mongorepo = new MongoRepository("FacaebookPageDailyReports"); var ret = mongorepo.Find <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports>(t => t.date == facebookReportViewModal.date && t.pageId == facebookReportViewModal.pageId); var task = Task.Run(async() => { return(await ret); }); if (task.Result != null) { if (task.Result.Count() < 1) { mongorepo.Add <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports>(facebookReportViewModal); } } } catch (Exception ex) { } } }
public static string ParseFeedUrl(string TextUrl, Domain.Socioboard.Enum.SocialProfileType profiletype, string profileid, long userId, string profileName, string profileImageUrl) { MongoRepository _RssFeedRepository = new MongoRepository("RssFeed"); try { XmlDocument xmlDoc = new XmlDocument(); // Create an XML document object xmlDoc.Load(TextUrl); var abc = xmlDoc.DocumentElement.GetElementsByTagName("item"); if (profiletype == Domain.Socioboard.Enum.SocialProfileType.Facebook || profiletype == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage) { Model.DatabaseRepository dbr = new DatabaseRepository(); Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = dbr.Find <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == profileid).First(); if (_Facebookaccounts != null) { if (_Facebookaccounts.IsActive) { foreach (XmlElement item in abc) { Domain.Socioboard.Models.Mongo.RssFeed objRssFeeds = new Domain.Socioboard.Models.Mongo.RssFeed(); try { objRssFeeds.Id = ObjectId.GenerateNewId(); objRssFeeds.strId = ObjectId.GenerateNewId().ToString(); objRssFeeds.ProfileName = profileName; objRssFeeds.ProfileImageUrl = profileImageUrl; try { objRssFeeds.Message = item.ChildNodes[9].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } catch (Exception ex) { try { if (item.ChildNodes[2].InnerText.Contains("www") && item.ChildNodes[2].InnerText.Contains("http")) { objRssFeeds.Message = item.ChildNodes[1].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } else { objRssFeeds.Message = item.ChildNodes[2].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } } catch { objRssFeeds.Message = item.ChildNodes[1].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } } try { objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[4].InnerText).ToString("yyyy/MM/dd HH:mm:ss"); } catch (Exception ex) { objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[3].InnerText).ToString("yyyy/MM/dd HH:mm:ss"); } objRssFeeds.Title = item.ChildNodes[0].InnerText; if (item.ChildNodes[1].InnerText.Contains("www") || item.ChildNodes[1].InnerText.Contains("http")) { try { objRssFeeds.Link = item.ChildNodes[1].InnerText; } catch (Exception ex) { objRssFeeds.Link = item.ChildNodes[2].InnerText; } } else { objRssFeeds.Link = item.ChildNodes[2].InnerText; } objRssFeeds.RssFeedUrl = TextUrl; objRssFeeds.ProfileId = profileid; objRssFeeds.ProfileType = profiletype; objRssFeeds.Status = false; var ret = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.Link.Equals(objRssFeeds.Link) && t.ProfileId.Equals(profileid) && t.ProfileType.Equals(profiletype)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { _RssFeedRepository.Add <Domain.Socioboard.Models.Mongo.RssFeed>(objRssFeeds); } } catch (Exception ex) { } if (apiHitsCount < MaxapiHitsCount) { string facebookdata = FacebookComposeMessageRss(objRssFeeds.Message, _Facebookaccounts.AccessToken, _Facebookaccounts.FbUserId, objRssFeeds.Title, objRssFeeds.Link, objRssFeeds.strId); if (!string.IsNullOrEmpty(facebookdata)) { apiHitsCount++; } } else { apiHitsCount = 0; return("ok"); } } _Facebookaccounts.SchedulerUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(_Facebookaccounts); } } } if (profiletype == Domain.Socioboard.Enum.SocialProfileType.Twitter) { Model.DatabaseRepository dbr = new DatabaseRepository(); Domain.Socioboard.Models.TwitterAccount _TwitterAccount = dbr.Find <Domain.Socioboard.Models.TwitterAccount>(t => t.twitterUserId == profileid).First(); if (_TwitterAccount != null) { if (_TwitterAccount.isActive) { foreach (XmlElement item in abc) { Domain.Socioboard.Models.Mongo.RssFeed objRssFeeds = new Domain.Socioboard.Models.Mongo.RssFeed(); try { objRssFeeds.Id = ObjectId.GenerateNewId(); objRssFeeds.strId = ObjectId.GenerateNewId().ToString(); objRssFeeds.ProfileName = profileName; objRssFeeds.ProfileImageUrl = profileImageUrl; try { objRssFeeds.Message = item.ChildNodes[9].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } catch (Exception ex) { try { if (item.ChildNodes[2].InnerText.Contains("www") && item.ChildNodes[2].InnerText.Contains("http")) { objRssFeeds.Message = item.ChildNodes[1].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } else { objRssFeeds.Message = item.ChildNodes[2].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } } catch { objRssFeeds.Message = item.ChildNodes[1].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } } try { objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[4].InnerText).ToString("yyyy/MM/dd HH:mm:ss"); } catch (Exception ex) { objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[3].InnerText).ToString("yyyy/MM/dd HH:mm:ss"); } objRssFeeds.Title = item.ChildNodes[0].InnerText; if (item.ChildNodes[1].InnerText.Contains("www") || item.ChildNodes[1].InnerText.Contains("http")) { try { objRssFeeds.Link = item.ChildNodes[1].InnerText; } catch (Exception ex) { objRssFeeds.Link = item.ChildNodes[2].InnerText; } } else { objRssFeeds.Link = item.ChildNodes[2].InnerText; } objRssFeeds.RssFeedUrl = TextUrl; objRssFeeds.ProfileId = profileid; objRssFeeds.ProfileType = profiletype; objRssFeeds.Status = false; var ret = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.Link.Equals(objRssFeeds.Link) && t.ProfileId.Equals(profileid) && t.ProfileType.Equals(profiletype)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { _RssFeedRepository.Add <Domain.Socioboard.Models.Mongo.RssFeed>(objRssFeeds); } } catch (Exception ex) { } if (twtapiHitsCount < twtMaxapiHitsCount) { string twitterdata = TwitterComposeMessageRss(objRssFeeds.Message, _TwitterAccount.oAuthToken, _TwitterAccount.oAuthSecret, _TwitterAccount.twitterUserId, _TwitterAccount.twitterScreenName, objRssFeeds.strId); if (!string.IsNullOrEmpty(twitterdata)) { twtapiHitsCount++; } } else { twtapiHitsCount = 0; return("ok"); } } _TwitterAccount.SchedulerUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.TwitterAccount>(_TwitterAccount); } } } return("ok"); } catch (Exception ex) { return("invalid url"); } }
public static int updateFacebookPageFeeds(Domain.Socioboard.Models.Facebookaccounts fbAcc) { apiHitsCount = 0; Model.DatabaseRepository dbr = new DatabaseRepository(); if (fbAcc.LastUpdate.AddHours(1) <= DateTime.UtcNow) { if (fbAcc.IsAccessTokenActive) { dynamic profile = Fbpages.getFbPageData(fbAcc.AccessToken); if (fbAcc.FbPageSubscription == Domain.Socioboard.Enum.FbPageSubscription.NotSubscribed) { string subscribed_apps = Fbpages.subscribed_apps(fbAcc.AccessToken, Convert.ToString(profile["id"])); fbAcc.FbPageSubscription = Domain.Socioboard.Enum.FbPageSubscription.Subscribed; } apiHitsCount++; if (Convert.ToString(profile) != "Invalid Access Token") { try { fbAcc.Friends = (Convert.ToInt64(profile["fan_count"])); } catch (Exception) { fbAcc.Friends = fbAcc.Friends; } try { fbAcc.EmailId = (Convert.ToString(profile["emails"])); fbAcc.EmailId = fbAcc.EmailId.Replace("[", "").Replace("]", "").Replace("\"", ""); } catch (Exception) { fbAcc.EmailId = fbAcc.EmailId; } try { fbAcc.coverPic = (Convert.ToString(profile["cover"]["source"])); } catch (Exception) { } try { dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc); } catch { } while (apiHitsCount < MaxapiHitsCount) { SaveFacebookFeeds(fbAcc.AccessToken, fbAcc.FbUserId, fbAcc.FbUserName); SavePageConversations(fbAcc.AccessToken, fbAcc.FbUserId); SaveFacebookPageFeed(fbAcc.AccessToken, fbAcc.FbUserId, fbAcc.FbUserName); SaveFacebookPagePromotionalDetails(fbAcc.AccessToken, fbAcc.FbUserId); SaveFacebookPageTaggedDetails(fbAcc.AccessToken, fbAcc.FbUserId); // SavePageNotification(fbAcc.AccessToken, fbAcc.FbUserId); } } } } else { apiHitsCount = 0; } return(0); }
public static string postRssFeeds(Domain.Socioboard.Models.Mongo.Rss _rss) { MongoRepository mongorepo = new MongoRepository("RssFeed"); DatabaseRepository dbr = new DatabaseRepository(); List <Domain.Socioboard.Models.Mongo.RssFeed> objrssdata = new List <Domain.Socioboard.Models.Mongo.RssFeed>(); var ret = mongorepo.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.ProfileId == _rss.ProfileId && t.Status == false); var task = Task.Run(async() => { return(await ret); }); IList <Domain.Socioboard.Models.Mongo.RssFeed> _objrssdata = task.Result; objrssdata = _objrssdata.ToList(); foreach (var item in objrssdata) { if (_objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.Facebook || _objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage) { try { if (item.Status == false) { Domain.Socioboard.Models.Facebookaccounts lstFbAcc = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId.Equals(item.ProfileId)); // Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(item.ProfileId, _redisCache, dbr); string msg = FacebookComposeMessageRss(item.Title, lstFbAcc.AccessToken, lstFbAcc.FbUserId, item.Title, item.Link, item.strId); var builders = Builders <BsonDocument> .Filter; FilterDefinition <BsonDocument> filter = builders.Eq("strId", item.strId); var update = Builders <BsonDocument> .Update.Set("Status", true); mongorepo.Update <Domain.Socioboard.Models.Mongo.RssFeed>(update, filter); var resu = mongorepo.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.strId == item.strId); var tasks = Task.Run(async() => { return(await resu); }); IList <Domain.Socioboard.Models.Mongo.RssFeed> _rssdata = tasks.Result; Console.WriteLine("rss Data"); Console.WriteLine(_rssdata); } } catch (Exception ex) { return(""); } Thread.Sleep(20 * 1000); } if (_objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.Twitter) { try { if (item.Status == false) { Domain.Socioboard.Models.TwitterAccount lstTwtAcc = dbr.Single <Domain.Socioboard.Models.TwitterAccount>(t => t.twitterUserId.Equals(item.ProfileId)); string msg = TwitterComposeMessageRss(item.Link, lstTwtAcc.oAuthToken, lstTwtAcc.oAuthSecret, lstTwtAcc.twitterUserId, lstTwtAcc.twitterScreenName, item.strId); var builders = Builders <BsonDocument> .Filter; FilterDefinition <BsonDocument> filter = builders.Eq("strId", item.strId); var update = Builders <BsonDocument> .Update.Set("Status", true); mongorepo.Update <Domain.Socioboard.Models.Mongo.RssFeed>(update, filter); var resu = mongorepo.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.strId == item.strId); var tasks = Task.Run(async() => { return(await resu); }); IList <Domain.Socioboard.Models.Mongo.RssFeed> _rssdata = tasks.Result; Console.WriteLine("rss Data"); Console.WriteLine(_rssdata); } } catch (Exception ex) { return(""); } Thread.Sleep(20 * 000); } } return(""); // string facebookdata = FacebookComposeMessageRss(objRssFeeds.Message, _Facebookaccounts.AccessToken, _Facebookaccounts.FbUserId, objRssFeeds.Title, objRssFeeds.Link, objRssFeeds.strId); }
public static string saveContentDataIdReposi(List <Domain.Socioboard.Models.Mongo.ContentFeedsShareathon> shareathon, long userId, string fbPageId, int timeInterval, Helper.Cache _redisCache, Helper.AppSettings settings, Model.DatabaseRepository dbr) { string[] lstProfileIds = null; if (fbPageId != null) { lstProfileIds = fbPageId.Split(','); fbPageId = lstProfileIds[0]; } MongoRepository mongorepo = new MongoRepository("ContentFeedsShareathon", settings); MongoRepository mongoreposhareId = new MongoRepository("ContentStudioShareathonIdData", settings); int totalval = 0; // DateTime timeval = DateTime.Now; foreach (var fbid in lstProfileIds) { Domain.Socioboard.Models.Facebookaccounts listfb = dbr.FindSingle <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == fbid); int countval = 0; int countitem = 0; string timevalue = null; string sectimevalue = null; foreach (var item in shareathon) { var retval = mongoreposhareId.Find <Domain.Socioboard.Models.Mongo.ContentStudioShareathonIdData>(t => t.FbPageId.Contains(fbid) && t.postId == item.postId); var taskval = Task.Run(async() => { return(await retval); }); int countvalue = taskval.Result.Count; if (countvalue < 1) { Domain.Socioboard.Models.Mongo.ContentStudioShareathonIdData lstIdforPost = new Domain.Socioboard.Models.Mongo.ContentStudioShareathonIdData(); lstIdforPost.Id = ObjectId.GenerateNewId(); lstIdforPost.strId = ObjectId.GenerateNewId().ToString(); lstIdforPost.FbPageId = fbid; lstIdforPost.Status = false; lstIdforPost.UserId = listfb.UserId; lstIdforPost.Timeintervalminutes = timeInterval; lstIdforPost.postId = item.postId; lstIdforPost.lastsharestamp = SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow); if (countitem == 0) { lstIdforPost.latsSharetime = DateTime.UtcNow; } else { // a.AddMinutes DateTime secval = Convert.ToDateTime(timevalue); lstIdforPost.latsSharetime = secval.AddMinutes(timeInterval);//timevalue.latsSharetime.AddMinutes(timeInterval); // var result = TimeSpan.FromMinutes(timeInterval); // lstIdforPost.lastsharestamp = lstIdforPost.lastsharestamp + datetotimestamp; } try { mongoreposhareId.Add(lstIdforPost); } catch (Exception ex) { //return "not added"; } DateTime timeval = lstIdforPost.latsSharetime; timevalue = timeval.ToString(); } int count = 0; try { var ret = mongorepo.Find <Domain.Socioboard.Models.Mongo.ContentFeedsShareathon>(t => t.postId.Contains(item.postId) && t.FbPageId.Contains(fbid)); var task = Task.Run(async() => { return(await ret); }); count = task.Result.Count; } catch { var ret = mongorepo.Find <Domain.Socioboard.Models.Mongo.ContentFeedsShareathon>(t => t.strId.Contains(item.strId) && t.FbPageId.Contains(fbid)); var task = Task.Run(async() => { return(await ret); }); count = task.Result.Count; } if (count < 1) { Domain.Socioboard.Models.Mongo.ContentFeedsShareathon lstforShareathon = new Domain.Socioboard.Models.Mongo.ContentFeedsShareathon(); lstforShareathon.Id = ObjectId.GenerateNewId(); lstforShareathon.strId = ObjectId.GenerateNewId().ToString(); lstforShareathon.FbPageId = fbid; lstforShareathon.postId = item.postId; lstforShareathon.networkType = item.networkType; lstforShareathon.title = item.title; lstforShareathon.facebookAccount = listfb.FbUserName; lstforShareathon.ImageUrl = item.ImageUrl; lstforShareathon.postUrl = item.postUrl; lstforShareathon.videourl = item.videourl; lstforShareathon.UserId = userId; lstforShareathon.Timeintervalminutes = timeInterval; lstforShareathon.lastsharestamp = SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow); lstforShareathon.Status = false; if (countitem == 0) { lstforShareathon.latsSharetime = DateTime.UtcNow; } else { // a.AddMinutes DateTime sectableaddtime = Convert.ToDateTime(sectimevalue); lstforShareathon.latsSharetime = sectableaddtime.AddMinutes(timeInterval); } try { mongorepo.Add(lstforShareathon); countval++; } catch (Exception ex) { //return "not added"; } DateTime timevalsec = lstforShareathon.latsSharetime; sectimevalue = timevalsec.ToString(); } else { // return "some problem while adding"; } countitem++; totalval = countval; } } if (totalval > 0) { return("added successfully"); } else { return("feed has already added"); } }