Exemple #1
0
        private void Init()
        {
            //Create twitter news
            var tweet1 = new TwitterNews(context);

            tweet1.Identifier = "1";
            tweet1.Title      = "Twitter ESA";
            tweet1.Author     = "ESA";
            tweet1.Store();

            var tweet2 = new TwitterNews(context);

            tweet2.Identifier = "2";
            tweet2.Title      = "Twitter Terradue";
            tweet2.Author     = "terradue";
            tweet2.Store();

            //create rss news
            var rss1 = new RssNews(context);

            rss1.Identifier = "3";
            rss1.Title      = "RSS worldbank";
            rss1.Url        = "http://blogs.worldbank.org/water/rss.xml";
            rss1.Store();
        }
Exemple #2
0
        public object Get(GetTwitterNewsFeeds request)
        {
            var            context = TepWebContext.GetWebContext(PagePrivileges.EverybodyView);
            List <WebNews> result  = new List <WebNews>();

            try{
                context.Open();
                context.LogInfo(this, string.Format("/news/twitter/feeds GET"));

                var twitterCollection          = TwitterNews.LoadTwitterCollection(context);
                var twitters                   = twitterCollection.GetFeeds(new System.Collections.Specialized.NameValueCollection());
                List <TwitterNews> tweetsfeeds = new List <TwitterNews>();
                tweetsfeeds.AddRange(TwitterNews.FromFeeds(context, twitters));
                foreach (TwitterNews tweetfeed in tweetsfeeds)
                {
                    result.Add(new WebNews(tweetfeed));
                }

                context.Close();
            }catch (Exception e) {
                context.LogError(this, e.Message, e);
                context.Close();
                throw e;
            }

            return(result);
        }
Exemple #3
0
        public object Get(SearchNews request)
        {
            var context = TepWebContext.GetWebContext(PagePrivileges.EverybodyView);
            IOpenSearchResultCollection result = null;

            try{
                context.Open();
                context.LogInfo(this, string.Format("/news/search GET"));

                // Load the complete request
                HttpRequest httpRequest = HttpContext.Current.Request;

                OpenSearchEngine ose = MasterCatalogue.OpenSearchEngine;

                Type type = OpenSearchFactory.ResolveTypeFromRequest(httpRequest.QueryString, httpRequest.Headers, ose);

                List <Terradue.OpenSearch.IOpenSearchable> osentities = new List <Terradue.OpenSearch.IOpenSearchable>();

                //try{
                //    EntityList<Article> articles = new EntityList<Article>(context);
                //    articles.Load();
                //    osentities.Add(articles);
                //}catch(Exception){}

                try{
                    var twitters = TwitterNews.LoadTwitterCollection(context);
                    osentities.Add(twitters);
                }catch (Exception) {}

                try{
                    EntityList <RssNews> rsss = new EntityList <RssNews>(context);
                    rsss.Load();
                    if (rsss != null)
                    {
                        foreach (RssNews rss in rsss)
                        {
                            osentities.Add(rss);
                        }
                    }
                }catch (Exception) {}

                var settings = MasterCatalogue.OpenSearchFactorySettings;
                MultiGenericOpenSearchable multiOSE = new MultiGenericOpenSearchable(osentities, settings);

                result = ose.Query(multiOSE, httpRequest.QueryString, type);


                context.Close();
            }catch (Exception e) {
                context.LogError(this, e.Message, e);
                context.Close();
                throw e;
            }

            return(new HttpResult(result.SerializeToString(), result.ContentType));
        }
Exemple #4
0
        public object Get(GetAllNewsFeeds request)
        {
            List <WebNews> result = new List <WebNews>();

            var context = TepWebContext.GetWebContext(PagePrivileges.EverybodyView);

            try {
                context.Open();
                context.LogInfo(this, string.Format("/news/feeds GET"));

                //get internal news
                //try{
                //    EntityList<Article> news = new EntityList<Article>(context);
                //    news.Load();
                //    foreach(Terradue.Portal.Article f in news){
                //        if(f.GetType() == typeof(Article))
                //            result.Add(new WebNews(f));
                //    }
                //}catch(Exception){}

                //get twitter news
                try {
                    var twitterCollection          = TwitterNews.LoadTwitterCollection(context);
                    var twitters                   = twitterCollection.GetFeeds(new System.Collections.Specialized.NameValueCollection());
                    List <TwitterNews> tweetsfeeds = new List <TwitterNews>();
                    tweetsfeeds.AddRange(TwitterNews.FromFeeds(context, twitters));
                } catch (Exception) { }

                //get rss news
                try{
                    EntityList <RssNews> rsss = new EntityList <RssNews>(context);
                    rsss.Load();
                    List <RssNews> rssfeeds = new List <RssNews>();
                    foreach (RssNews rss in rsss)
                    {
                        rssfeeds.AddRange(rss.GetFeeds());
                    }
                    foreach (RssNews rssfeed in rssfeeds)
                    {
                        result.Add(new WebNews(rssfeed));
                    }
                }catch (Exception) {}

                context.Close();
            } catch (Exception e) {
                context.LogError(this, e.Message, e);
                context.Close();
                throw e;
            }
            return(result.OrderByDescending(r => r.Date));
        }
Exemple #5
0
        public object Post(CreateNews request)
        {
            WebNews result = null;

            var context = TepWebContext.GetWebContext(PagePrivileges.AdminOnly);

            try {
                context.Open();

                if (request.Type.Equals(EntityType.GetEntityType(typeof(TwitterNews)).Keyword))
                {
                    TwitterNews tweet = null;
                    tweet = new TwitterNews(context);
                    tweet = (TwitterNews)request.ToEntity(context, tweet);
                    tweet.Store();
                    result = new WebNews(tweet);
                }
                else if (request.Type.Equals(EntityType.GetEntityType(typeof(RssNews)).Keyword))
                {
                    RssNews rss = null;
                    rss = new RssNews(context);
                    rss = (RssNews)request.ToEntity(context, rss);
                    rss.Store();
                    result = new WebNews(rss);
                    //} else if (request.Type.Equals(EntityType.GetEntityType(typeof(TumblrNews)).Keyword)){
                    //    TumblrNews tumblr = null;
                    //    tumblr = new TumblrNews(context);
                    //    tumblr = (TumblrNews)request.ToEntity(context, tumblr);
                    //    tumblr.Store();
                    //    result = new WebNews(tumblr);
                }
                else
                {
                    Article article = null;
                    article = new Article(context);
                    article = (Article)request.ToEntity(context, article);
                    article.Store();
                    result = new WebNews(article);
                }

                context.LogInfo(this, string.Format("/news POST Id='{0}'", request.Id));

                context.Close();
            } catch (Exception e) {
                context.LogError(this, e.Message, e);
                context.Close();
                throw e;
            }
            return(result);
        }
Exemple #6
0
        public void SearchTwitterFeeds()
        {
            var ose        = MasterCatalogue.OpenSearchEngine;
            var settings   = new OpenSearchableFactorySettings(ose);
            var parameters = new NameValueCollection();

            parameters.Set("count", "20");

            try {
                var twitters = TwitterNews.LoadTwitterCollection(context);
                IOpenSearchResultCollection osr = ose.Query(twitters, parameters);
                Assert.That(osr.TotalResults > 0);
            } catch (Exception e) {
                Assert.Fail(e.Message);
            } finally {
                context.EndImpersonation();
            }
        }
Exemple #7
0
        public void SearchAllFeeds()
        {
            var ose      = MasterCatalogue.OpenSearchEngine;
            var settings = new OpenSearchableFactorySettings(ose);
            List <Terradue.OpenSearch.IOpenSearchable> osentities = new List <Terradue.OpenSearch.IOpenSearchable>();
            var parameters = new NameValueCollection();

            parameters.Set("count", "20");

            context.AccessLevel = EntityAccessLevel.Privilege;
            try {
                EntityList <Article> articles = new EntityList <Article>(context);
                articles.Load();
                osentities.Add(articles);

                var twitters = TwitterNews.LoadTwitterCollection(context);
                osentities.Add(twitters);

                EntityList <RssNews> rsss = new EntityList <RssNews>(context);
                rsss.Load();
                if (rsss != null)
                {
                    foreach (RssNews rss in rsss)
                    {
                        osentities.Add(rss);
                    }
                }

                MultiGenericOpenSearchable multiOSE = new MultiGenericOpenSearchable(osentities, settings);

                IOpenSearchResultCollection osr = ose.Query(multiOSE, parameters);
                Assert.That(osr.TotalResults > 0);
            } catch (Exception e) {
                Assert.Fail(e.Message);
            } finally {
                context.EndImpersonation();
            }
        }
Exemple #8
0
        public object Post(CreateTwitterNews request)
        {
            var     context = TepWebContext.GetWebContext(PagePrivileges.EverybodyView);
            WebNews result  = null;

            try{
                context.Open();
                context.LogInfo(this, string.Format("/news/twitter POST Id='{0}'", request.Id));

                TwitterNews article = new TwitterNews(context);
                article = (TwitterNews)request.ToEntity(context, article);
                article.Store();
                result = new WebNews(article);

                context.Close();
            }catch (Exception e) {
                context.LogError(this, e.Message, e);
                context.Close();
                throw e;
            }

            return(result);
        }