Monday, May 20, 2013

Read Blog Feeds in SharePoint using object model

BlogFeeds.ascx:-
<asp:Label ID="lblHeaderImage" runat="server"></asp:Label>
BlogFeeds.ascx.cs:-
using Microsoft.SharePoint;
using System;
using System.Net;
using System.ComponentModel;
using System.Text;
using System.Web.UI.WebControls.WebParts;
using System.Xml;
namespace BlogFeeds.BlogFeeds
{
    [ToolboxItemAttribute(false)]
    public partial class BlogFeeds : WebPart
    {
        public BlogFeeds()
        {
        }
        private string rssUrl;
        [Personalizable(true)]
        [WebBrowsable()]
        public virtual string RssUrl
        {
            get { return "http://ankushbhatia.wordpress.com/feed/"; }
            set { rssUrl = value; }
        }
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            InitializeControl();
        }
        private StringBuilder AddContainer(StringBuilder sbContent)
        {
            sbContent.Append("<div class='box2'>");
            sbContent Append("<div class='head-icon'><img runat='server' width='60' height='60' src='/_layouts/15/BlogFeeds/blog-feed-icon.png' /></div>");
            sbContent.Append("<div class='head-text'>");
            sbContent.Append("Blog Feeds");
            sbContent.Append("</div><div class='clear'></div>");
            return sbContent;
        }
        private StringBuilder AddItemToContainer(XmlReader itemReader, StringBuilder sbContent)
        {
            string link = string.Empty; ;
            string title = string.Empty;
            string description = string.Empty;
            while (itemReader.Read())
            {
                if (itemReader.NodeType == XmlNodeType.Element)
                {
                    if (itemReader.Name == "link")
                        link = itemReader.ReadElementContentAsString();
                    else if (itemReader.Name == "title")
                        title = itemReader.ReadElementContentAsString();
                    else if (itemReader.Name == "description")
                        description = itemReader.ReadElementContentAsString();
                }
            }
            sbContent.Append("<div class='icon'>");
            sbContent.Append("<img src='/_layouts/15/BlogFeed/post-blog-icon.png' width='26' height='26' />");
            sbContent.Append("</div>");
            sbContent.Append("<div class='blog-text'>");
            sbContent.Append("<span>");
            sbContent.Append(title == null ? string.Empty : title);
            sbContent.Append("</span><br />");
            sbContent.Append(description == null ? string.Empty : description);
            sbContent.Append("<div class='tol'>TOI</div>");
            sbContent.Append("</div>");
            sbContent.Append("<div class='clear'></div>");
            return sbContent;
        }
        private void loadBlogFeeds()
        {
            StringBuilder sbContent= new StringBuilder();
            int topFour = 0;
            sbContent= AddContainer(sbContent);
            sbContent Append("<div id='blogFeeds' class='blog-comment-box' style='width:675px; height:290px; overflow:scroll;'>");
            try
            {
                using (XmlReader reader = XmlReader.Create(RssUrl))
                {
                    reader.MoveToContent();
                    reader.ReadToDescendant("channel");
                    reader.ReadToDescendant("item");
                    do
                    {
                        using (XmlReader itemReader = reader.ReadSubtree())
                        {
                            sbContent= AddItemToContainer(itemReader, sbContent);
                            topFour++;
                        }
                    } while (reader.ReadToNextSibling("item") && topFour < 4);
                    sbContent.Append("<div class='clear'></div>");
                    sbContent.Append("</div>");
                    sbContent.Append("<a href='" + RssUrl + "' class='view-all-btn'>View All</a>");
                    sbContent.Append("<div class='clear'></div>");
                    sbContent.Append("</div>");
                }
                lblHeaderImage.Text = sbContent.ToString();
            }
            catch (Exception ex)
            {
                sbContent.Append("Exception " + ex.Message + " while reading rss at " + RssUrl);
                sbContent.Append("</div><div class='clear'></div></div>");
                lblHeaderImage.Text = sbContent.ToString();
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            loadBlogFeeds();
        }
    }
}



Thank You.

No comments:

Post a Comment

Featured Post

Protect an API by using OAuth 2.0 with Azure Active Directory and API Management

Protect an API by using OAuth 2.0 with Azure Active Directory and API Management https://docs.microsoft.com/en-us/azure/api-management/api-...

Popular posts