Exemple #1
0
        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");
            }
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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");
        }
Exemple #7
0
        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");
            }
        }
Exemple #8
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");
            }
        }
Exemple #9
0
        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");
        }