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 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 void updateRssFeeds(Domain.Socioboard.Models.Mongo.Rss _rss) { ParseFeedUrl(_rss.rssFeedUrl.rssurl, _rss.ProfileType, _rss.ProfileId, _rss.UserId, _rss.ProfileName, _rss.ProfileImageUrl); }