public static string DeleteFeedUrl(string RssId, Model.DatabaseRepository dbr, Helper.AppSettings _appSettings) { try { MongoRepository _RssRepository = new MongoRepository("Rss", _appSettings); List <Domain.Socioboard.Models.Mongo.Rss> lstRss = new List <Domain.Socioboard.Models.Mongo.Rss>(); var ret = _RssRepository.Find <Domain.Socioboard.Models.Mongo.Rss>(t => t.strId == RssId); var task = Task.Run(async() => { return(await ret); }); lstRss = task.Result.ToList(); Domain.Socioboard.Models.RssFeedUrl feedurl = dbr.FindSingle <Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Equals(lstRss.First().RssFeedUrl) && t.ProfileId == lstRss.First().ProfileId); if (feedurl != null) { dbr.Delete <Domain.Socioboard.Models.RssFeedUrl>(feedurl); } var builders = Builders <Domain.Socioboard.Models.Mongo.Rss> .Filter; FilterDefinition <Domain.Socioboard.Models.Mongo.Rss> filter = builders.Eq("strId", RssId); _RssRepository.Delete <Domain.Socioboard.Models.Mongo.Rss>(filter); return("success"); } catch (Exception ex) { return("Error"); } }
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); Domain.Socioboard.Models.RssFeedUrl _RssFeedUrl = Repositories.RssFeedRepository.AddRssUrl(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, _RssFeedUrl, prId, Domain.Socioboard.Enum.SocialProfileType.Facebook, "http://graph.facebook.com/" + objFacebookAccount.FbUserId + "/picture?type=small", objFacebookAccount.FbUserName, 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, _RssFeedUrl, prId, Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage, "http://graph.facebook.com/" + objFacebookAccount.FbUserId + "/picture?type=small", objFacebookAccount.FbUserName, 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, _RssFeedUrl, prId, Domain.Socioboard.Enum.SocialProfileType.Twitter, objTwitterAccount.profileImageUrl, objTwitterAccount.twitterName, dbr, _appSettings); } } } return(Ok("Added Successfully")); }
public static string AddRssFeed(string TextUrl, long Userid, string profileId, Domain.Socioboard.Enum.SocialProfileType ProfileType, string profileimageurl, string profilename, Model.DatabaseRepository dbr, Helper.AppSettings _appSettings) { int UrlAdded = 0; string RetMsg = string.Empty; MongoRepository _RssRepository = new MongoRepository("Rss", _appSettings); Domain.Socioboard.Models.RssFeedUrl rssobj = new Domain.Socioboard.Models.RssFeedUrl(); rssobj = dbr.FindSingle <Domain.Socioboard.Models.RssFeedUrl>(t => t.ProfileId == profileId && t.rssurl == TextUrl); string rt = ParseFeedUrl(TextUrl, ProfileType, profileId, Userid, profilename, profileimageurl, _appSettings); var ret = _RssRepository.Find <Domain.Socioboard.Models.Mongo.Rss>(t => t.RssFeedUrl.Equals(TextUrl) && t.ProfileId.Contains(profileId) && t.ProfileType == ProfileType && t.UserId.Equals(Userid)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { if (rt == "ok") { Domain.Socioboard.Models.Mongo.Rss _Rss = new Domain.Socioboard.Models.Mongo.Rss(); _Rss.Id = ObjectId.GenerateNewId(); _Rss.strId = ObjectId.GenerateNewId().ToString(); _Rss.RssFeedUrl = TextUrl; _Rss.ProfileType = ProfileType; _Rss.ProfileId = profileId; _Rss.UserId = Userid; _Rss.ProfileImageUrl = profileimageurl; _Rss.ProfileName = profilename; _Rss.rssFeedUrl = rssobj; _Rss.CreatedOn = DateTime.UtcNow.ToString("yyyy/MM/dd HH:mm:ss"); _RssRepository.Add(_Rss); UrlAdded++; } else { return("Please Fill Correct Url For Feeds"); } } else { } if (UrlAdded == 1) { RetMsg = "Url for " + UrlAdded.ToString() + " account is added"; } else if (UrlAdded > 1) { RetMsg = "Url for " + UrlAdded.ToString() + " accounts is added"; } else { RetMsg = "Url has already added"; } return(RetMsg); }
public static string AddRssUrl(string profileId, string Url, DatabaseRepository dbr) { string[] profilesList = null; if (profileId != null) { profilesList = profileId.Split(','); profileId = profilesList[0]; } foreach (var item in profilesList) { string prid = null; if (item.StartsWith("page")) { prid = item.Substring(5, item.Length - 5); } else if (item.Contains("tw_") || item.Contains("fb")) { prid = item.Substring(3, item.Length - 3); } else if (item.StartsWith("lin")) { prid = item.Substring(4); } else if (item.StartsWith("Cmpylinpage")) { prid = item.Substring(12); } var rssFeedUrl = dbr.FindSingle <Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(Url) && t.Keywords == null && t.ProfileId == prid); if (rssFeedUrl == null) { rssFeedUrl = new Domain.Socioboard.Models.RssFeedUrl { rssurl = Url, ProfileId = prid, LastUpdate = DateTime.UtcNow }; dbr.Add(rssFeedUrl); } } return("success"); }
public static Domain.Socioboard.Models.RssFeedUrl AddRssUrl(string Url, Model.DatabaseRepository dbr) { Domain.Socioboard.Models.RssFeedUrl _RssFeedUrl = dbr.FindSingle <Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(Url)); if (_RssFeedUrl != null) { return(_RssFeedUrl); } else { _RssFeedUrl = new Domain.Socioboard.Models.RssFeedUrl(); _RssFeedUrl.rssurl = Url; _RssFeedUrl.LastUpdate = DateTime.UtcNow; dbr.Add <Domain.Socioboard.Models.RssFeedUrl>(_RssFeedUrl); _RssFeedUrl = dbr.FindSingle <Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(Url)); return(_RssFeedUrl); } }
public static string AddRssUrl(string profileId, string Url, Model.DatabaseRepository dbr) { string[] profilesList = null; if (profileId != null) { profilesList = profileId.Split(','); profileId = profilesList[0]; } foreach (var item in profilesList) { string prid = null; if (item.Contains("page_")) { prid = item.Substring(5, item.Length - 5); } else if (item.Contains("tw_")) { prid = item.Substring(3, item.Length - 3); } else { prid = item.Substring(3, item.Length - 3); } Domain.Socioboard.Models.RssFeedUrl _RssFeedUrl = dbr.FindSingle <Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(Url) && t.Keywords == null && t.ProfileId == prid); if (_RssFeedUrl != null) { return("null"); } else { _RssFeedUrl = new Domain.Socioboard.Models.RssFeedUrl(); _RssFeedUrl.rssurl = Url; _RssFeedUrl.ProfileId = prid; _RssFeedUrl.LastUpdate = DateTime.UtcNow; dbr.Add <Domain.Socioboard.Models.RssFeedUrl>(_RssFeedUrl); _RssFeedUrl = dbr.FindSingle <Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(Url) && t.Keywords == null); } } return("success"); }
public static string EditFeedUrl(string NewFeedUrl, string OldFeedUrl, string RssId, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr) { Domain.Socioboard.Models.RssFeedUrl _RssFeedUrl = new Domain.Socioboard.Models.RssFeedUrl(); _RssFeedUrl = dbr.Find <Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(OldFeedUrl)).FirstOrDefault(); _RssFeedUrl.rssurl = NewFeedUrl; dbr.Update <Domain.Socioboard.Models.RssFeedUrl>(_RssFeedUrl); _RssFeedUrl = dbr.FindSingle <Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(NewFeedUrl)); try { MongoRepository _RssRepository = new MongoRepository("Rss", _appSettings); var builders = Builders <BsonDocument> .Filter; FilterDefinition <BsonDocument> filter = builders.Eq("strId", RssId); var update = Builders <BsonDocument> .Update.Set("RssFeedUrl", NewFeedUrl).Set("rssFeedUrl", _RssFeedUrl); _RssRepository.Update <Domain.Socioboard.Models.Mongo.Rss>(update, filter); return("Success"); } catch (Exception ex) { return("Error"); } }
public static string ParseXMLFeedUrl(string TextUrl, Domain.Socioboard.Enum.SocialProfileType profiletype, string profileid, long userId, string profileName, string profileImageUrl, Domain.Socioboard.Models.RssFeedUrl rssobj, Helper.AppSettings _appSettings) { MongoRepository _RssFeedRepository = new MongoRepository("RssFeed", _appSettings); MongoRepository _RssRepository = new MongoRepository("Rss", _appSettings); var rets = _RssRepository.Find <Domain.Socioboard.Models.Mongo.Rss>(t => t.RssFeedUrl.Equals(TextUrl) && t.ProfileId.Contains(profileid) && t.ProfileType == profiletype && t.UserId.Equals(userId)); var tasks = Task.Run(async() => { return(await rets); }); int counts = tasks.Result.Count; if (counts < 1) { Domain.Socioboard.Models.Mongo.Rss _Rss = new Domain.Socioboard.Models.Mongo.Rss(); _Rss.Id = ObjectId.GenerateNewId(); _Rss.strId = ObjectId.GenerateNewId().ToString(); _Rss.RssFeedUrl = TextUrl; _Rss.ProfileType = profiletype; _Rss.ProfileId = profileid; _Rss.UserId = userId; _Rss.ProfileImageUrl = profileImageUrl; _Rss.ProfileName = profileName; _Rss.rssFeedUrl = rssobj; _Rss.CreatedOn = DateTime.UtcNow.ToString("yyyy/MM/dd HH:mm:ss"); try { _RssRepository.Add(_Rss); } catch (Exception ex) { } } try { XmlDocument xmlDoc = new XmlDocument(); // Create an XML document object xmlDoc.Load(TextUrl); string datevalue = null; string urlvalue = null; var abc = xmlDoc.DocumentElement.GetElementsByTagName("sitemap"); var urls = xmlDoc.DocumentElement.GetElementsByTagName("url"); if (abc.Count != 0) { try { foreach (XmlElement siteval in abc) { Domain.Socioboard.Models.Mongo.RssFeed objRssFeeds = new Domain.Socioboard.Models.Mongo.RssFeed(); try { urlvalue = siteval.ChildNodes[0].InnerText; } catch (Exception ex) { urlvalue = ""; } try { datevalue = siteval.ChildNodes[1].InnerText; } catch (Exception ex) { datevalue = ""; } DateTime todate = DateTime.Now; DateTime fromDate = DateTime.Now; fromDate = fromDate.AddYears(-1); fromDate = fromDate.AddMonths(5); DateTime dt = Convert.ToDateTime(datevalue); if (dt > fromDate && dt < todate) { xmlDoc.Load(urlvalue); var sitedatalist = xmlDoc.DocumentElement.GetElementsByTagName("url"); foreach (XmlElement item in sitedatalist) { objRssFeeds.Id = ObjectId.GenerateNewId(); objRssFeeds.strId = ObjectId.GenerateNewId().ToString(); objRssFeeds.ProfileName = profileName; objRssFeeds.ProfileImageUrl = profileImageUrl; objRssFeeds.RssFeedUrl = TextUrl; objRssFeeds.ProfileId = profileid; objRssFeeds.ProfileType = profiletype; objRssFeeds.Status = false; try { objRssFeeds.Link = item.ChildNodes[0].InnerText; // objRssFeeds.Link = getBetween(objRssFeeds.Link, "<a href=\"", "\">"); } catch (Exception ex) { objRssFeeds.Link = ""; } objRssFeeds.PublishingDate = item.ChildNodes[1].InnerText; 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(objRssFeeds); } } } } } catch (Exception ex) { } } else { xmlDoc.Load(TextUrl); var sitedatalist = xmlDoc.DocumentElement.GetElementsByTagName("url"); try { foreach (XmlElement item in sitedatalist) { Domain.Socioboard.Models.Mongo.RssFeed objRssFeeds = new Domain.Socioboard.Models.Mongo.RssFeed(); objRssFeeds.Id = ObjectId.GenerateNewId(); objRssFeeds.strId = ObjectId.GenerateNewId().ToString(); objRssFeeds.ProfileName = profileName; objRssFeeds.ProfileImageUrl = profileImageUrl; objRssFeeds.RssFeedUrl = TextUrl; objRssFeeds.ProfileId = profileid; objRssFeeds.ProfileType = profiletype; objRssFeeds.Status = false; try { objRssFeeds.Link = item.ChildNodes[0].InnerText; objRssFeeds.Link = objRssFeeds.Link.Replace("\r", "").Replace("\n", ""); } catch (Exception ex) { } try { objRssFeeds.PublishingDate = item.ChildNodes[1].InnerText; } catch (Exception ex) { } 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(objRssFeeds); } } } catch (Exception ex) { } } return("ok"); } catch (Exception ex) { return("invalid url"); } }
public static string AddRssContentsUrl(string keywords, long userId, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr) { MongoRepository _rssNewsContents = new MongoRepository("RssNewsContents", _appSettings); //Domain.Socioboard.Models.RssFeedUrl _RssFeedUrl = dbr.FindSingle<Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(url)); List <string> list = new List <string>(); list = findUrl(keywords).ToList(); Domain.Socioboard.Models.Mongo.RssNewsContents _rssnews = new Domain.Socioboard.Models.Mongo.RssNewsContents(); Domain.Socioboard.Models.RssFeedUrl _RssContentFeeds = new Domain.Socioboard.Models.RssFeedUrl(); foreach (var urlValue in list) { if (urlValue != null) { string rt = ParseFeedUrl(urlValue.ToString(), keywords, userId.ToString(), _appSettings); _RssContentFeeds = dbr.FindSingle <Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(urlValue) && t.Keywords != null); if (_RssContentFeeds != null) { //return _RssFeedUrl.ToString(); } else { _RssContentFeeds = new Domain.Socioboard.Models.RssFeedUrl(); _RssContentFeeds.rssurl = urlValue; _RssContentFeeds.LastUpdate = DateTime.UtcNow; _RssContentFeeds.Keywords = keywords; try { dbr.Add <Domain.Socioboard.Models.RssFeedUrl>(_RssContentFeeds); } catch (Exception error) { } //_RssContentFeedUrl = dbr.FindSingle<Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(urlValue) && t.Keywords == null); //return urlValue; } var ret = _rssNewsContents.Find <Domain.Socioboard.Models.Mongo.RssNewsContents>(t => t.RssFeedUrl.Equals(urlValue) && t.ProfileId.Contains(userId.ToString())); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { _rssnews.Id = ObjectId.GenerateNewId(); _rssnews.ProfileId = userId.ToString(); _rssnews.RssFeedUrl = urlValue.ToString(); _rssnews.LastUpdate = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow); _rssNewsContents.Add(_rssnews); } else { return("Data already added"); } } } return("added successfully"); }