
* Profile.aspx: * MyProfile.aspx: * AccountController.cs: renamed the Profile method to "MyProfile", could avoid issue at migrating to MVC5 * favicon.png: favicon now displays a ~"Yavsc" * BlogManager.cs: * BlogsApiController.cs: The authorisation for removing a post is now implemented at Manager's side * BlogsController.cs: Removes this odd call to a static method from the Api controller * CalendarApi.cs: * GoogleController.cs: no more json output for the calls to the Google Api * WorkFlowController.cs: sorted using clauses * Basket.cs: * Commande.cs: * EstimToPdfFormatter.cs: * Brand.cs: adds xml doc * RssFeedsFormatter.cs: modifies xml doc * TexToPdfFormatter.cs: refactoring * Global.asax.cs: Document formatting * BBCodeHelper.cs: encapsulates the url display from the BBCode in starting and closing characters : "<>" * OAuth2.cs: * SimpleJsonPostMethod.cs: using System.Runtime.Serialization.Json instead of Newtonsof.Json * App.master: updating the favicon * RegistrationPending.aspx: fixes the returnUrl usage * AssemblyInfo.aspx: better explanation for this list * Web.config: tried to migrate to MVC5 (using NuGets) * Estim.cs: * ChangePasswordModel.cs: adds xmldoc * BasketController.cs: * BlogProvidersConfigurationSection.cs: cosmetic change * GoogleErrorMessage.cs: - adds xml docs - renders ctor from JsonReaderException obsolete * MvcActionValueBinder.cs: not used * web.config: no more used, gave it up to migrate to MVC5
108 lines
3.8 KiB
C#
108 lines
3.8 KiB
C#
//
|
|
// RssFormatter.cs
|
|
//
|
|
// Author:
|
|
// paul <${AuthorEmail}>
|
|
//
|
|
// Copyright (c) 2015 paul
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU Lesser General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU Lesser General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Lesser General Public License
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
using System;
|
|
using System.Net.Http.Formatting;
|
|
using System.Net.Http.Headers;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Net.Http;
|
|
using System.Web.Mvc;
|
|
using System.Net;
|
|
using Yavsc.Model;
|
|
using System.Text;
|
|
|
|
namespace Yavsc.Formatters
|
|
{
|
|
/// <summary>
|
|
/// Rss feeds formatter.
|
|
/// </summary>
|
|
public class RssFeedsFormatter:SimpleFormatter
|
|
{
|
|
string doctype = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
|
|
/// <summary>
|
|
/// Initializes a new instance of the <see cref="Yavsc.Formatters.RssFeedsFormatter"/> class.
|
|
/// </summary>
|
|
public RssFeedsFormatter
|
|
() : base ("application/rss+xml")
|
|
{
|
|
}
|
|
|
|
private const string dateformat = "ddd, dd MMM yyyy HH:mm:ss K";
|
|
/// <summary>
|
|
/// Writes synchronously to the buffered stream.
|
|
/// </summary>
|
|
/// <param name="type">Type.</param>
|
|
/// <param name="value">Value.</param>
|
|
/// <param name="stream">Stream.</param>
|
|
/// <param name="contentHeaders">Content headers.</param>
|
|
public override void WriteToStream (Type type, object value, Stream stream, HttpContentHeaders contentHeaders)
|
|
{
|
|
RssFeedsChannel feeds = value as RssFeedsChannel;
|
|
using (var writer = new StreamWriter (stream)) {
|
|
TagBuilder rss = new TagBuilder ("rss");
|
|
rss.Attributes.Add ("version", "2.0");
|
|
TagBuilder channel = new TagBuilder ("channel");
|
|
TagBuilder title = new TagBuilder ("title");
|
|
TagBuilder description = new TagBuilder ("description");
|
|
TagBuilder lastBuildDate = new TagBuilder ("lastBuildDate");
|
|
TagBuilder link = new TagBuilder ("link");
|
|
|
|
title.InnerHtml = MvcHtmlString.Create (feeds.Title).ToHtmlString ();
|
|
description.InnerHtml = MvcHtmlString.Create (feeds.Description).ToHtmlString ();
|
|
lastBuildDate.InnerHtml = MvcHtmlString.Create (feeds.LastBuildDate.ToString (dateformat)).ToHtmlString ();
|
|
link.InnerHtml = MvcHtmlString.Create (feeds.Link).ToHtmlString ();
|
|
StringBuilder sb = new StringBuilder ();
|
|
foreach (RssFeedsEntry e in feeds.Entries) {
|
|
TagBuilder item = new TagBuilder ("item");
|
|
TagBuilder ititle = new TagBuilder ("title");
|
|
ititle.InnerHtml = e.Title;
|
|
|
|
TagBuilder idescription = new TagBuilder ("description");
|
|
idescription.InnerHtml = MvcHtmlString.Create (e.Description).ToHtmlString ();
|
|
TagBuilder ipubDate = new TagBuilder ("pubDate");
|
|
ipubDate.InnerHtml = MvcHtmlString.Create (
|
|
e.PubDate.ToString (dateformat)).ToHtmlString ();
|
|
|
|
TagBuilder ilink = new TagBuilder ("link");
|
|
ilink.InnerHtml = MvcHtmlString.Create (e.Link).ToHtmlString ();
|
|
|
|
item.InnerHtml = ititle.ToString () + "\n" +
|
|
idescription.ToString () + "\n" +
|
|
ipubDate.ToString () + "\n" +
|
|
ilink.ToString () + "\n";
|
|
|
|
sb.Append (item.ToString () + "\n");
|
|
}
|
|
channel.InnerHtml = title.ToString () + "\n" +
|
|
description.ToString () + "\n" +
|
|
lastBuildDate.ToString () + "\n" +
|
|
link.ToString () + "\n" +
|
|
sb.ToString () + "\n";
|
|
rss.InnerHtml = channel.ToString ();
|
|
writer.WriteLine (doctype);
|
|
writer.Write (rss.ToString ());
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|