public FeedResult(SyndicationFeedFormatter feed, DateTime lastModified) { this.feed = feed; this.lastModified = lastModified; }
public SyndicationActionResult(SyndicationFeedFormatter formatter) { this.formatter = formatter; }
public FeedResult(SyndicationFeedFormatter feed) { _feed = feed; }
public FeedBodyWriter(SyndicationFeedFormatter formatter) : base(false) { this.formatter = formatter; }
public FeedResult(SyndicationFeedFormatter feed) { this.feed = feed ?? throw new ArgumentNullException(nameof(feed)); }
public RSSActionResult(SyndicationFeedFormatter feed) { _feed = feed; }
public SyndicationFeedFormatter CreateFeed() { SyndicationFeed feed = null; bool isEnabled = false; string enabledString = ConfigurationManager.AppSettings["EnableRSS"]; if (!string.IsNullOrEmpty(enabledString)) { isEnabled = Convert.ToBoolean(enabledString); } if (!isEnabled) { feed = new SyndicationFeed("TicketDesk Feed Disabled", "FeedDisabled", null, "FeedDisabled", DateTimeOffset.Now, null); } else { TicketDataDataContext ctx = new TicketDataDataContext(); // Create a new Syndication Feed. IQueryable <Ticket> tickets = from t in ctx.Tickets select t; // Create a new Syndication Item. string idArray = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["id"]; if (idArray != null) { tickets = from t in tickets where idArray.Split(',').Contains(t.TicketId.ToString()) select t; } string categoryArray = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["category"]; if (categoryArray != null) { tickets = from t in tickets where categoryArray.Split(',').Contains(t.Category) select t; } string tagArray = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["tag"]; if (tagArray != null) { tickets = from t in tickets join tags in ctx.TicketTags on t.TicketId equals tags.TicketId where tagArray.Split(',').Contains(tags.TagName) select t; } string priorityArray = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["priority"]; if (priorityArray != null) { tickets = from t in tickets where priorityArray.Split(',').Contains(t.Priority) select t; } string assignedArray = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["assigned"]; if (assignedArray != null) { tickets = from t in tickets where assignedArray.Split(',').Contains(t.AssignedTo) select t; } string ownerArray = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["owner"]; if (ownerArray != null) { tickets = from t in tickets where ownerArray.Split(',').Contains(t.Owner) select t; } string statusArray = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["status"]; if (statusArray != null) { tickets = from t in tickets where statusArray.Split(',').Contains(t.CurrentStatus) select t; } string closed = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["closed"]; if ((statusArray == null) && ((closed == null) || ((closed != "yes") && (closed != "1")))) { tickets = from t in tickets where t.CurrentStatus != "Closed" select t; } List <SyndicationItem> items = new List <SyndicationItem>(); foreach (Ticket ticket in tickets.Distinct().OrderByDescending(t => t.LastUpdateDate)) { SyndicationItem item = GetRSSEntryForTicket(ticket); items.Add(item); } feed = new SyndicationFeed("TicketDesk RSS", "TicketDeskRSS", null, "TicketDeskRSS", DateTimeOffset.Now, items); } string query = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["format"]; SyndicationFeedFormatter formatter = null; if (query == "atom") { formatter = new Atom10FeedFormatter(feed); } else { formatter = new Rss20FeedFormatter(feed); } return(formatter); }
public void Publish(SyndicationFeedFormatter feedFormatter) { }
/// <summary> /// Gets an RSS feed from a given URL and returns the resulting XML as a string. /// </summary> /// <param name="url">URL of the feed to load.</param> /// <param name="count">The count of postings to return.</param> /// <returns>The feed XML as a string.</returns> public SyndicationFeed GetFeed(string url, int count) { XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreWhitespace = true; settings.CheckCharacters = true; settings.CloseInput = true; settings.IgnoreComments = true; settings.IgnoreProcessingInstructions = true; settings.ProhibitDtd = false; using (XmlReader reader = XmlReader.Create(url, settings)) { SyndicationFeedFormatter formatter = null; Atom10FeedFormatter atom = new Atom10FeedFormatter(); Rss20FeedFormatter rss = new Rss20FeedFormatter(); SyndicationFeed feed; // Determine the format of the feed if (reader.ReadState == ReadState.Initial) { reader.MoveToContent(); } if (atom.CanRead(reader)) { formatter = atom; } if (rss.CanRead(reader)) { formatter = rss; } if (formatter == null) { return(null); } formatter.ReadFrom(reader); feed = formatter.Feed; // Remove unwanted items List <SyndicationItem> items = new List <SyndicationItem>(); int added = 0; foreach (SyndicationItem i in feed.Items) { items.Add(i); if (added++ == count - 1) { break; } } feed.Items = items; return(feed); } }
public FeedResult(SyndicationFeedFormatter formattedFeed) { this.formattedFeed = formattedFeed; }
public FeedResultController(SyndicationFeedFormatter formattedFeed) { this.formattedFeed = formattedFeed; }
public static WebFeed ReadFeed(string url, string tipo) { try { if (!url.StartsWith("http://") && !url.StartsWith("https://")) { url = string.Format("http://{0}", url); } SyndicationFeedFormatter formatter = null; if (tipo.Equals("RSS")) { formatter = new Rss20FeedFormatter(); } else if (tipo.Equals("ATOM")) { formatter = new Atom10FeedFormatter(); } using (XmlReader reader = XmlReader.Create(url)) { // le decimos al formateador que analice el XML del feed. formatter.ReadFrom(reader); } WebFeed webFeed = new WebFeed { Title = formatter.Feed.Title.Text, Description = formatter.Feed.Description.Text, Language = formatter.Feed.Language, LastUpdatedTime = formatter.Feed.LastUpdatedTime.DateTime, Nodes = new List <WebFeedNode>() }; //if (formatter.Feed.Copyright != null) // webFeed.Copyright = formatter.Feed.Copyright.Text; foreach (SyndicationItem item in formatter.Feed.Items) { StringBuilder text = new StringBuilder().AppendFormat(item.Summary.Text); string summary = text.ToString(); if (summary.Length > 256) { summary = summary.Remove(256); } webFeed.Nodes.Add(new WebFeedNode { Title = item.Title.Text, PublishDate = item.PublishDate.DateTime, LastUpdateTime = item.LastUpdatedTime.DateTime, Summary = summary, Link = item.Links.First().Uri.ToString() }); } return(webFeed); } catch (Exception ex) { Console.WriteLine(ex.Message); return(new WebFeed { Nodes = new List <WebFeedNode>() }); } }