HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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();
        }
    }
}