File: D:/HostingSpaces/TDijk1/erp-apps.eu/wwwroot/CMSWebParts/External/ExternalRSSFeed.ascx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Text;
using System.IO;
using System.Xml;
using CMS.PortalControls;
public partial class CMSWebParts_External_ExternalRSSFeed : CMSAbstractWebPart
{
/// <summary>
/// Gets or sets the RSS Heading
/// </summary>
public string RSSHeading
{
get
{
return CMS.GlobalHelper.ValidationHelper.GetString(GetValue("RSSHeading"), "");
}
set
{
SetValue("RSSHeading", value);
}
}
/// <summary>
/// Gets or sets the RSS Url
/// </summary>
public string RSSUrl
{
get
{
return CMS.GlobalHelper.ValidationHelper.GetString(GetValue("RSSUrl"), "");
}
set
{
SetValue("RSSUrl", value);
}
}
/// <summary>
/// Gets or sets the No of feeds displaying
/// </summary>
public int NoofFeeds
{
get
{
return CMS.GlobalHelper.ValidationHelper.GetInteger(GetValue("NoofFeeds"), 0);
}
set
{
SetValue("NoofFeeds", value);
}
}
/// <summary>
/// Gets or sets the Heading CSS Style
/// </summary>
public string HeadingCss
{
get
{
return CMS.GlobalHelper.ValidationHelper.GetString(GetValue("HeadingCss"), "");
}
set
{
SetValue("HeadingCss", value);
}
}
/// <summary>
/// Gets or sets the List Itesm CSS Style
/// </summary>
public string RSSCss
{
get
{
return CMS.GlobalHelper.ValidationHelper.GetString(GetValue("RSSCss"), "");
}
set
{
SetValue("RSSCss", value);
}
}
protected void Page_Load(object sender, EventArgs e)
{
try
{
lblHeading.Text = RSSHeading;
lblHeading.CssClass = HeadingCss;
lblRssFeed.Text = ProcessRSS(RSSUrl);
}
catch (Exception ex)
{
lblMsg.Text = ex.Message.ToString();
}
}
protected string ProcessRSS(string rssURL)
{
try
{
WebRequest request = WebRequest.Create(rssURL);
WebResponse response = request.GetResponse();
StringBuilder sb = new StringBuilder("");
Stream rssStream = response.GetResponseStream();
XmlDocument rssDoc = new XmlDocument();
rssDoc.Load(rssStream);
XmlNodeList rssItems = rssDoc.SelectNodes("rss/channel/item");
string title = "";
string link = "";
int upperlimit;
if (NoofFeeds == 0 || NoofFeeds == null || NoofFeeds > rssItems.Count)
{
upperlimit = rssItems.Count;
}
else
{
upperlimit = NoofFeeds;
}
if (upperlimit > 0)
{
sb.Append("<div><ul>");
for (int i = 0; i < upperlimit; i++)
{
XmlNode rssDetail;
rssDetail = rssItems.Item(i).SelectSingleNode("title");
if (rssDetail != null)
{
title = rssDetail.InnerText;
}
else
{
title = "";
}
rssDetail = rssItems.Item(i).SelectSingleNode("link");
if (rssDetail != null)
{
link = rssDetail.InnerText;
}
else
{
link = "";
}
sb.Append("<li style='padding:3px' class='" + RSSCss + "'><a href='" + link + "' target='_blank'>" + title + "</a></li>");
}
sb.Append("</ul></div>");
}
return sb.ToString();
}
catch (Exception ex)
{
return ex.Message.ToString();
}
}
}