public IActionResult GettwitterSingle(string profileId) { DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); Domain.Socioboard.Models.TwitterAccount AccDetails = dbr.Single <Domain.Socioboard.Models.TwitterAccount>(t => t.twitterUserId == profileId); return(Ok(AccDetails)); }
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 List <Domain.Socioboard.Models.Mongo.twtfollowfollowing> gettwtfollofollowingReport(string[] profileId, int daysCount, Helper.Cache _redisCache, Helper.AppSettings _appSettings, DatabaseRepository dbr) { MongoRepository mongorepo = new MongoRepository("MongoTwitterDailyReports", _appSettings); List <Domain.Socioboard.Models.Mongo.twtfollowfollowing> inMemtwtDailyReports = _redisCache.Get <List <Domain.Socioboard.Models.Mongo.twtfollowfollowing> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheInstagramDailyReport + profileId); if (inMemtwtDailyReports != null) { return(inMemtwtDailyReports); } else { List <Domain.Socioboard.Models.Mongo.twtfollowfollowing> reportdata = new List <twtfollowfollowing>(); DateTime dayStart = new DateTime(DateTime.UtcNow.AddDays(-daysCount).Year, DateTime.UtcNow.AddDays(-daysCount).Month, DateTime.UtcNow.AddDays(-daysCount).Day, 0, 0, 0, DateTimeKind.Utc); DateTime dayEnd = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 23, 59, 59, DateTimeKind.Utc); var ret = mongorepo.Find <Domain.Socioboard.Models.Mongo.MongoTwitterDailyReports>(t => profileId.Contains(t.profileId) && t.timeStamp <= Helper.DateExtension.ConvertToUnixTimestamp(dayEnd) && t.timeStamp >= Helper.DateExtension.ConvertToUnixTimestamp(dayStart)); var task = Task.Run(async() => { return(await ret); }); if (task.Result != null) { IList <Domain.Socioboard.Models.Mongo.MongoTwitterDailyReports> lstfbpagereportdata = task.Result.ToList(); var Instapid = lstfbpagereportdata.GroupBy(x => x.profileId).Select(x => x.First()).ToList(); var random = new Random(); foreach (Domain.Socioboard.Models.Mongo.MongoTwitterDailyReports twtprofiledata in Instapid) { // DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); List <Domain.Socioboard.Models.TwitterAccount> lstTwtAcc = new List <Domain.Socioboard.Models.TwitterAccount>(); Domain.Socioboard.Models.TwitterAccount twtAcc = Repositories.TwitterRepository.getTwitterAccount(twtprofiledata.profileId, _redisCache, dbr); //Domain.Socioboard.Models.TwitterAccount twtAccname = dbr.Find().twtAccname(); var randomColor = String.Format("#{0:X6}", random.Next(0x1000000)); Domain.Socioboard.Models.Mongo.twtfollowfollowing repo = new twtfollowfollowing(); long twtFollowerCount = lstfbpagereportdata.ToList().Where(t => t.profileId == twtprofiledata.profileId).Sum(t => t.newFollowers); long twtFollowingCount = lstfbpagereportdata.ToList().Where(t => t.profileId == twtprofiledata.profileId).Sum(t => t.newFollowing); repo.startdate = dayStart; repo.endtdate = dayEnd; repo.twtFollowerCounts = twtFollowerCount; repo.twtFollowingCounts = twtFollowingCount; repo.profileId = twtprofiledata.profileId; repo.twtName = twtAcc.twitterScreenName; repo.profilepic = twtAcc.profileImageUrl; repo.colors = Convert.ToString(randomColor); reportdata.Add(repo); } // long TwitterFollowerCount = lstfbpagereportdata.ToList().Where(t => profileId.Contains(t.profileId)).Sum(t => t.followcount); if (lstfbpagereportdata.Count > 0) { _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheInstagramDailyReport + profileId, lstfbpagereportdata.ToList()); } return(reportdata.OrderBy(t => t.startdate).ToList()); // return lstfbpagereportdata.OrderBy(t => t.date).ToList(); } return(new List <Domain.Socioboard.Models.Mongo.twtfollowfollowing>()); } }
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 void ScheduleTwitterMessage() { 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.Twitter) && t.scheduleTime <= DateTime.UtcNow).ToList(); //lstScheduledMessage = lstScheduledMessage.Where(t => t.profileId.Contains("847698757219106817")).ToList(); var newlstScheduledMessage = lstScheduledMessage.GroupBy(t => t.profileId).ToList(); foreach (var items in newlstScheduledMessage) { try { Domain.Socioboard.Models.TwitterAccount _TwitterAccount = dbr.Single <Domain.Socioboard.Models.TwitterAccount>(t => t.twitterUserId == items.Key && t.isActive); if (_TwitterAccount != null) { foreach (var item in items) { try { Console.WriteLine(item.socialprofileName + "Scheduling Started"); TwitterScheduler.PostTwitterMessage(item, _TwitterAccount); Console.WriteLine(item.socialprofileName + "Scheduling"); } catch (Exception) { Thread.Sleep(60000); } } _TwitterAccount.SchedulerUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.TwitterAccount>(_TwitterAccount); Thread.Sleep(60000); } } catch (Exception) { Thread.Sleep(60000); } } } catch (Exception ex) { Console.WriteLine("issue in web api calling" + ex.StackTrace); Thread.Sleep(60000); } } }
public IActionResult GetAllTwitterProfiles(long groupId) { DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); List <Domain.Socioboard.Models.Groupprofiles> lstGrpProfiles = Repositories.GroupProfilesRepository.getAllGroupProfiles(groupId, _redisCache, dbr); List <Domain.Socioboard.Models.TwitterAccount> lstTwtAcc = new List <Domain.Socioboard.Models.TwitterAccount>(); foreach (var item in lstGrpProfiles.Where(t => t.profileType == Domain.Socioboard.Enum.SocialProfileType.Twitter)) { Domain.Socioboard.Models.TwitterAccount twtAcc = Repositories.TwitterRepository.getTwitterAccount(item.profileId, _redisCache, dbr); if (twtAcc != null) { lstTwtAcc.Add(twtAcc); } } return(Ok(lstTwtAcc)); }
private static void TwitterSchedulemessage(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.ScheduledMessage> items = (IGrouping <string, Domain.Socioboard.Models.ScheduledMessage>)arr[1]; Domain.Socioboard.Models.TwitterAccount _TwitterAccount = dbr.Single <Domain.Socioboard.Models.TwitterAccount>(t => t.twitterUserId == items.Key && t.isActive); Domain.Socioboard.Models.User _user = dbr.Single <Domain.Socioboard.Models.User>(t => t.Id == _TwitterAccount.userId); if (_TwitterAccount != null) { foreach (var item in items) { try { Console.WriteLine(item.socialprofileName + "Scheduling Started"); TwitterScheduler.PostTwitterMessage(item, _TwitterAccount, _user); Console.WriteLine(item.socialprofileName + "Scheduling"); } catch (Exception) { Thread.Sleep(60000); } } _TwitterAccount.SchedulerUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.TwitterAccount>(_TwitterAccount); } } catch (Exception) { Thread.Sleep(60000); } finally { noOfthreadRunning--; objSemaphore.Release(); Console.WriteLine(Thread.CurrentThread.Name + " Is Released"); } }
public static Domain.Socioboard.Models.TwitterAccount getTwitterAccount(string twitterUserId, Helper.Cache _redisCache, Helper.DatabaseRepository dbr) { try { Domain.Socioboard.Models.TwitterAccount inMemTwitterAcc = _redisCache.Get <Domain.Socioboard.Models.TwitterAccount>(Domain.Socioboard.Consatants.SocioboardConsts.CacheTwitterAccount + twitterUserId); if (inMemTwitterAcc != null) { return(inMemTwitterAcc); } } catch { } List <Domain.Socioboard.Models.TwitterAccount> lstTwitterAcc = dbr.Find <Domain.Socioboard.Models.TwitterAccount>(t => t.twitterUserId.Equals(twitterUserId)).ToList(); if (lstTwitterAcc != null && lstTwitterAcc.Count() > 0) { _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheTwitterAccount + twitterUserId, lstTwitterAcc.First()); return(lstTwitterAcc.First()); } else { return(null); } }
public static int updateTwitterFeeds(Domain.Socioboard.Models.TwitterAccount twtaccount, oAuthTwitter oAuth) { apiHitsCount = 0; Model.DatabaseRepository dbr = new DatabaseRepository(); Domain.Socioboard.Models.Groupprofiles _grpProfile = dbr.Single <Domain.Socioboard.Models.Groupprofiles>(t => t.profileId.Contains(twtaccount.twitterUserId)); if (twtaccount.lastUpdate.AddMinutes(15) <= DateTime.UtcNow) { if (twtaccount.isActive) { string twitterUserId = string.Empty; Users userinfo = new Users(); JArray profile = userinfo.Get_Users_LookUp_ByScreenName(oAuth, oAuth.TwitterScreenName); TwitterUser twtuser; if (profile != null) { var item = profile[0]; try { twtaccount.followingCount = Convert.ToInt64(item["friends_count"].ToString()); } catch (Exception ex) { twtaccount.followingCount = twtaccount.followingCount; } try { twtaccount.followersCount = Convert.ToInt64(item["followers_count"].ToString()); } catch (Exception ex) { twtaccount.followersCount = twtaccount.followersCount; } try { twtaccount.profileImageUrl = item["profile_image_url_https"].ToString().TrimStart('"').TrimEnd('"'); _grpProfile.profilePic = item["profile_image_url_https"].ToString().TrimStart('"').TrimEnd('"'); } catch (Exception ex) { } try { twtaccount.location = item["location"].ToString().TrimStart('"').TrimEnd('"'); } catch (Exception ex) { } try { twtaccount.description = item["description"].ToString().TrimStart('"').TrimEnd('"'); } catch (Exception ex) { } try { twtaccount.profileUrl = string.Empty; } catch (Exception ex) { } try { twtaccount.twitterScreenName = item["screen_name"].ToString().TrimStart('"').TrimEnd('"'); } catch (Exception ex) { } try { twtaccount.profileBackgroundImageUrl = item["profile_banner_url"].ToString().TrimStart('"').TrimEnd('"'); } catch (Exception ex) { twtaccount.profileBackgroundImageUrl = item["profile_background_image_url_https"].ToString().TrimStart('"').TrimEnd('"'); } dbr.Update <Domain.Socioboard.Models.TwitterAccount>(twtaccount); dbr.Update <Domain.Socioboard.Models.Groupprofiles>(_grpProfile); while (apiHitsCount < MaxapiHitsCount) { try { Savetwitterrecentdetails(profile); SaveTwitterMessages(twtaccount.twitterUserId, oAuth); SaveUserRetweets(twtaccount.twitterUserId, oAuth); SaveUserTweets(twtaccount.twitterUserId, twtaccount.twitterScreenName, oAuth); SaveTwitterFeeds(twtaccount.twitterUserId, twtaccount.twitterScreenName, oAuth); SaveUserFollowers(oAuth, twtaccount.twitterScreenName, twtaccount.twitterUserId); SaveTwitterDirectMessageSent(oAuth, twtaccount.twitterUserId); SaveTwittwrDirectMessageRecieved(oAuth, twtaccount.twitterUserId); } catch (Exception exs) { } } twtaccount.lastUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.TwitterAccount>(twtaccount); } } } return(0); }
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); }
private static void TwitterSchedulemessage(object o) { try { MongoRepository mongorepo = new Helper.MongoRepository("ContentFeedsShareathon"); int pageapiHitsCount; object[] arr = o as object[]; FacebookPageFeedShare shareathon = (FacebookPageFeedShare)arr[0]; Model.DatabaseRepository dbr = (Model.DatabaseRepository)arr[1]; MongoRepository _ShareathonRepository = (MongoRepository)arr[2]; string[] ids = shareathon.socialProfiles.Split(','); foreach (string id in ids) { Domain.Socioboard.Models.TwitterAccount _TwitterAccount = dbr.Single <Domain.Socioboard.Models.TwitterAccount>(t => t.twitterUserId == id && t.isActive); Domain.Socioboard.Models.LinkedInAccount _LinkedinAcc = dbr.Single <Domain.Socioboard.Models.LinkedInAccount>(t => t.LinkedinUserId == id && t.IsActive); Domain.Socioboard.Models.User _user = dbr.Single <Domain.Socioboard.Models.User>(t => t.Id == _TwitterAccount.userId); MongoRepository mongoshare = new Helper.MongoRepository("FacebookPageFeedShare"); if (_TwitterAccount != null || _LinkedinAcc != null) { var resultshare = _ShareathonRepository.Find <FacebookPageFeedShare>(t => t.pageId == shareathon.pageId && t.status != Domain.Socioboard.Enum.RealTimeShareFeedStatus.deleted); var task = Task.Run(async() => { return(await resultshare); }); int count = task.Result.Count; var feedsData = task.Result.ToList(); if (count != 0) { foreach (var item in feedsData) { if (item.socialmedia.StartsWith("tw")) { try { Console.WriteLine(item.socialProfiles + "Scheduling Started"); PostTwitterMessage(item, _TwitterAccount, null, _user); Console.WriteLine(item.socialProfiles + "Scheduling"); } catch (Exception) { Thread.Sleep(60000); } } if (item.socialmedia.StartsWith("lin")) { try { Console.WriteLine(item.socialProfiles + "Scheduling Started"); PostTwitterMessage(item, null, _LinkedinAcc, _user); Console.WriteLine(item.socialProfiles + "Scheduling"); } catch (Exception) { Thread.Sleep(60000); } } } //fbAcc.contenetShareathonUpdate = DateTime.UtcNow; //facebookPage.contenetShareathonUpdate = DateTime.UtcNow; //dbr.Update<Domain.Socioboard.Models.Facebookaccounts>(fbAcc); //dbr.Update<Domain.Socioboard.Models.Facebookaccounts>(facebookPage); } //_TwitterAccount.SchedulerUpdate = DateTime.UtcNow; // dbr.Update<Domain.Socioboard.Models.TwitterAccount>(_TwitterAccount); } } } catch (Exception ex) { Thread.Sleep(60000); } finally { noOfthreadRunning--; objSemaphore.Release(); Console.WriteLine(Thread.CurrentThread.Name + " Is Released"); } }
public static string ComposeTwitterMessage(string message, string profileid, long userid, string picurl, bool isScheduled, DatabaseRepository dbr, Domain.Socioboard.Models.TwitterAccount TwitterAccount, Domain.Socioboard.Models.User _user) { bool rt = false; string ret = ""; string str = "Message posted"; try { if (message.Length > 140) { message = message.Substring(0, 135); } } catch (Exception ex) { } Domain.Socioboard.Models.TwitterAccount objTwitterAccount = TwitterAccount; oAuthTwitter OAuthTwt = new oAuthTwitter(AppSettings.twitterConsumerKey, AppSettings.twitterConsumerScreatKey, AppSettings.twitterRedirectionUrl); OAuthTwt.AccessToken = objTwitterAccount.oAuthToken; OAuthTwt.AccessTokenSecret = objTwitterAccount.oAuthSecret; OAuthTwt.TwitterScreenName = objTwitterAccount.twitterScreenName; OAuthTwt.TwitterUserId = objTwitterAccount.twitterUserId; Tweet twt = new Tweet(); if (!string.IsNullOrEmpty(picurl)) { try { PhotoUpload ph = new PhotoUpload(); string res = string.Empty; rt = ph.NewTweet(picurl, message, OAuthTwt, ref res); } catch (Exception ex) { apiHitsCount = MaxapiHitsCount; } } else { try { JArray post = twt.Post_Statuses_Update(OAuthTwt, message); ret = post[0]["id_str"].ToString(); } catch (Exception ex) { apiHitsCount = MaxapiHitsCount; } } if (!string.IsNullOrEmpty(ret) || rt == true) { string msg = "feed shared successfully"; } else { string msg = "feed has not posted"; } return(str); }
public static void PostTwitterMessage(Domain.Socioboard.Models.Mongo.FacebookPageFeedShare fbPagefeedshare, Domain.Socioboard.Models.TwitterAccount _TwitterAccount, Domain.Socioboard.Models.LinkedInAccount _LinkedinAcc, Domain.Socioboard.Models.User _user) { try { DatabaseRepository dbr = new DatabaseRepository(); MongoRepository _mongofbpostdata = new Helper.MongoRepository("MongoFacebookFeed"); MongoRepository mongofacebooksharedata = new Helper.MongoRepository("FacebookPageFeedShare"); var result = _mongofbpostdata.Find <Domain.Socioboard.Models.Mongo.MongoFacebookFeed>(t => t.ProfileId == fbPagefeedshare.pageId && t.shareStatus == false); var task = Task.Run(async() => { return(await result); }); IList <Domain.Socioboard.Models.Mongo.MongoFacebookFeed> lstfbpagefeeds = task.Result.ToList(); foreach (var item in lstfbpagefeeds) { string twitterdata = null; string linkedindata = null; try { if (fbPagefeedshare.scheduleTime <= DateTime.UtcNow) { if (_TwitterAccount != null) { twitterdata = ComposeTwitterMessage(item.FeedDescription, item.ProfileId, fbPagefeedshare.userId, item.Picture, false, dbr, _TwitterAccount, _user); } else { linkedindata = ComposeLinkedInMessage(item.Picture, fbPagefeedshare.userId, item.FeedDescription, item.ProfileId, "", _LinkedinAcc, dbr, _user); } if (!string.IsNullOrEmpty(twitterdata) && twitterdata != "feed has not posted" || !string.IsNullOrEmpty(linkedindata) && linkedindata != "feed has not posted") { apiHitsCount++; item.shareStatus = true; fbPagefeedshare.lastsharestamp = DateTime.UtcNow; FilterDefinition <BsonDocument> filter = new BsonDocument("FeedId", item.FeedId); var updatemongo = Builders <BsonDocument> .Update.Set("shareStatus", true); _mongofbpostdata.Update <MongoFacebookFeed>(updatemongo, filter); } else if (twitterdata == "Message not posted") { } } } catch (Exception ex) { } } FilterDefinition <BsonDocument> filters = new BsonDocument("strId", fbPagefeedshare.strId); //new BsonDocument("FeedId", item.FeedId); var updatefbshare = Builders <BsonDocument> .Update.Set("status", Domain.Socioboard.Enum.RealTimeShareFeedStatus.running).Set("scheduleTime", DateTime.UtcNow); mongofacebooksharedata.Update <FacebookPageFeedShare>(updatefbshare, filters); } catch (Exception ex) { apiHitsCount = MaxapiHitsCount; } }
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 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.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); }