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, @"<[^>]+>| ", "").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); }
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, @"<[^>]+>| ", "").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; }