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(); }
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); }
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)); }
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)); }
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); }
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(); } }
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(); } }
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); }