Ejemplo n.º 1
0
 private void BindData(RssFeedDto feed)
 {
     litRssLastBuildDate.Text = feed.LastBuildDate.ToString();
     litRssDescription.Text   = feed.Description;
     litRssImageUrl.Text      = feed.ImageUrl;
     litRssImageLink.Text     = feed.ImageLink;
     litRssImageTitle.Text    = feed.ImageTitle;
     litRssLanguage.Text      = feed.Language;
     litRssLink.Text          = feed.Link;
     litRssTitle.Text         = feed.Title;
     litRssTtl.Text           = feed.Ttl.ToString();
     RepeaterRSS.DataSource   = feed.Items;
     RepeaterRSS.DataBind();
 }
Ejemplo n.º 2
0
 private void BindData(RssFeedDto feed)
 {
     litRssLastBuildDate.Text = feed.LastBuildDate.ToString();
     litRssDescription.Text = feed.Description;
     litRssImageUrl.Text = feed.ImageUrl;
     litRssImageLink.Text = feed.ImageLink;
     litRssImageTitle.Text = feed.ImageTitle;
     litRssLanguage.Text = feed.Language;
     litRssLink.Text = feed.Link;
     litRssTitle.Text = feed.Title;
     litRssTtl.Text = feed.Ttl.ToString();
     RepeaterRSS.DataSource = feed.Items;
     RepeaterRSS.DataBind();
 }
Ejemplo n.º 3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                // Get previous page title and URL
                SPSecurity.RunWithElevatedPrivileges(delegate
                {
                    using (SPSite site = new SPSite(SPContext.Current.Web.Url))
                    {
                        using (SPWeb web = site.OpenWeb())
                        {
                            var idStr = HttpContext.Current.Request.QueryString["List"];
                            var idViewStr = HttpContext.Current.Request.QueryString["View"];
                            var fieldTitle = HttpContext.Current.Request.QueryString["T"];
                            var fieldAuthor = HttpContext.Current.Request.QueryString["A"];
                            var fieldDate = HttpContext.Current.Request.QueryString["D"];
                            var fieldBody = HttpContext.Current.Request.QueryString["B"];
                            var relUrl = HttpContext.Current.Request.QueryString["U"];
                            var feed = new RssFeedDto();
                            if (PopulateFromList(feed, web, idStr, idViewStr, fieldTitle, fieldAuthor, fieldDate,
                                fieldBody,
                                relUrl))
                            {
                                BindData(feed);
                                Response.AppendHeader("ETag", feed.ETag);
                                Response.AppendHeader("Last-Modified", feed.LastBuildDate.ToString());
                                Response.ContentType = "text/xml";
                                Response.ContentEncoding = Encoding.UTF8;
                            }
                        }
                    }
                });
            }
            catch (Exception ex)
            {

            }
        }
Ejemplo n.º 4
0
 protected void Page_Load(object sender, EventArgs e)
 {
     try
     {
         // Get previous page title and URL
         SPSecurity.RunWithElevatedPrivileges(delegate
         {
             using (SPSite site = new SPSite(SPContext.Current.Web.Url))
             {
                 using (SPWeb web = site.OpenWeb())
                 {
                     var idStr       = HttpContext.Current.Request.QueryString["List"];
                     var idViewStr   = HttpContext.Current.Request.QueryString["View"];
                     var fieldTitle  = HttpContext.Current.Request.QueryString["T"];
                     var fieldAuthor = HttpContext.Current.Request.QueryString["A"];
                     var fieldDate   = HttpContext.Current.Request.QueryString["D"];
                     var fieldBody   = HttpContext.Current.Request.QueryString["B"];
                     var relUrl      = HttpContext.Current.Request.QueryString["U"];
                     var feed        = new RssFeedDto();
                     if (PopulateFromList(feed, web, idStr, idViewStr, fieldTitle, fieldAuthor, fieldDate,
                                          fieldBody,
                                          relUrl))
                     {
                         BindData(feed);
                         Response.AppendHeader("ETag", feed.ETag);
                         Response.AppendHeader("Last-Modified", feed.LastBuildDate.ToString());
                         Response.ContentType     = "text/xml";
                         Response.ContentEncoding = Encoding.UTF8;
                     }
                 }
             }
         });
     }
     catch (Exception ex)
     {
     }
 }
Ejemplo n.º 5
0
        private bool PopulateFromList(RssFeedDto feed, SPWeb web, string listIdStr, string viewIdStr, string fieldTitle, string fieldAuthor, string fieldDate, string fieldBody, string RelURL)
        {
            try
            {
                var list         = web.Lists[listIdStr];
                var limit        = int.Parse(GetProperty(list.RootFolder.Properties["vti_rss_ItemLimit"], "30"));
                var allItemsLink = SPUtility.ConcatUrls(web.Url, list.DefaultView.Url);
                feed.LastBuildDate = list.LastItemModifiedDate;
                feed.ETag          = list.CurrentChangeToken.ToString();
                feed.Description   = GetProperty(list.RootFolder.Properties["vti_rss_ChannelDescription"], list.Description);
                feed.ImageUrl      = ConvertRelativeUrlToAbsoluteUrl(GetProperty(list.RootFolder.Properties["vti_rss_ChannelImageUrl"], list.ImageUrl));
                feed.ImageLink     = allItemsLink;
                feed.ImageTitle    = list.Title;
                feed.Language      = web.UICulture.Name;
                feed.Link          = allItemsLink;
                feed.Title         = GetProperty(list.RootFolder.Properties["vti_rss_ChannelTitle"], list.Title);
                feed.XsltLink      = web.Url + "/_layouts/RssXslt.aspx?List=" + list.ID;
                feed.Ttl           = 60;

                for (var i = 0; i < list.Items.Count; i++)
                {
                    try
                    {
                        var listItem = list.Items[i];

                        var feedItem = new RssItem();
                        var itemUrl  = web.Site.RootWeb.Url + RelURL + "?ID=" + listItem.ID;
                        feedItem.PermalinkGuid = itemUrl;
                        feedItem.Title         = listItem[fieldTitle].ToString();
                        feedItem.Title         = Regex.Replace(feedItem.Title, @"<[^>]+>|&nbsp;", "").Trim();
                        feedItem.Link          = itemUrl;
                        feedItem.Description   = listItem[fieldBody] != null ? listItem[fieldBody].ToString() : "";
                        try
                        {
                            feedItem.PubDate = Convert.ToDateTime(listItem[fieldDate].ToString());
                        }
                        catch
                        {
                            try
                            {
                                feedItem.PubDate = Convert.ToDateTime(listItem["Modified"].ToString());
                            }
                            catch
                            {
                                feedItem.PubDate = DateTime.Today;
                            }
                        }
                        feedItem.Author = listItem[fieldAuthor].ToString();
                        feed.Items.Add(feedItem);
                    }
                    catch (Exception ex)
                    {
                    }
                }
                feed.Items = feed.Items.OrderByDescending(x => x.PubDate).Take(limit).ToList();


                return(true);
            }
            catch (Exception ex)
            {
            }
            return(false);
        }
Ejemplo n.º 6
0
        private bool PopulateFromList(RssFeedDto feed, SPWeb web, string listIdStr, string viewIdStr, string fieldTitle, string fieldAuthor, string fieldDate, string fieldBody, string RelURL)
        {
            try
            {
                var list = web.Lists[listIdStr];
                var limit = int.Parse(GetProperty(list.RootFolder.Properties["vti_rss_ItemLimit"], "30"));
                var allItemsLink = SPUtility.ConcatUrls(web.Url, list.DefaultView.Url);
                feed.LastBuildDate = list.LastItemModifiedDate;
                feed.ETag = list.CurrentChangeToken.ToString();
                feed.Description = GetProperty(list.RootFolder.Properties["vti_rss_ChannelDescription"], list.Description);
                feed.ImageUrl = ConvertRelativeUrlToAbsoluteUrl(GetProperty(list.RootFolder.Properties["vti_rss_ChannelImageUrl"], list.ImageUrl));
                feed.ImageLink = allItemsLink;
                feed.ImageTitle = list.Title;
                feed.Language = web.UICulture.Name;
                feed.Link = allItemsLink;
                feed.Title = GetProperty(list.RootFolder.Properties["vti_rss_ChannelTitle"], list.Title);
                feed.XsltLink = web.Url + "/_layouts/RssXslt.aspx?List=" + list.ID;
                feed.Ttl = 60;

                for (var i = 0; i < list.Items.Count; i++)
                {
                    try
                    {
                        var listItem = list.Items[i];

                        var feedItem = new RssItem();
                        var itemUrl = web.Site.RootWeb.Url + RelURL + "?ID=" + listItem.ID;
                        feedItem.PermalinkGuid = itemUrl;
                        feedItem.Title = listItem[fieldTitle].ToString();
                        feedItem.Title = Regex.Replace(feedItem.Title, @"<[^>]+>|&nbsp;", "").Trim();
                        feedItem.Link = itemUrl;
                        feedItem.Description = listItem[fieldBody] != null ? listItem[fieldBody].ToString() : "";
                        try
                        {
                            feedItem.PubDate = Convert.ToDateTime(listItem[fieldDate].ToString());
                        }
                        catch
                        {
                            try
                            {
                                feedItem.PubDate = Convert.ToDateTime(listItem["Modified"].ToString());
                            }
                            catch
                            {
                                feedItem.PubDate = DateTime.Today;
                            }
                        }
                        feedItem.Author = listItem[fieldAuthor].ToString();
                        feed.Items.Add(feedItem);
                    }
                    catch (Exception ex)
                    {

                    }
                }
                feed.Items = feed.Items.OrderByDescending(x => x.PubDate).Take(limit).ToList();

                return true;
            }
            catch (Exception ex)
            {
            }
            return false;
        }