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);
        }
Пример #2
0
        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");
            }
        }
Пример #3
0
 public static void updateRssFeeds(Domain.Socioboard.Models.Mongo.Rss _rss)
 {
     ParseFeedUrl(_rss.rssFeedUrl.rssurl, _rss.ProfileType, _rss.ProfileId, _rss.UserId, _rss.ProfileName, _rss.ProfileImageUrl);
 }