public static XDoc GetCommentXmlAsAtom(IList <CommentBE> comments, XUri feedUri, PageBE page) { var resources = DekiContext.Current.Resources; string title = resources.Localize(DekiResources.COMMENT_FOR(page.Title.AsUserFriendlyName())); XAtomFeed feed = new XAtomFeed(title, feedUri, DateTime.UtcNow); feed.AddLink(PageBL.GetUriUi(page), XAtomBase.LinkRelation.Alternate, MimeType.XHTML, null, page.Title.AsUserFriendlyName()); feed.Id = feedUri; foreach (CommentBE c in comments) { UserBE posterUser = UserBL.GetUserById(c.PosterUserId); title = c.Title; if (string.IsNullOrEmpty(title)) { title = resources.Localize(DekiResources.COMMENT_BY_TO(posterUser.Name, page.Title.AsUserFriendlyName())); } XAtomEntry entry = feed.StartEntry(title, c.CreateDate, (c.LastEditDate == null || c.LastEditDate == DateTime.MinValue) ? c.CreateDate : c.LastEditDate.Value); entry.Id = GetUri(c); entry.AddAuthor(posterUser.Name, UserBL.GetUriUiHomePage(posterUser), posterUser.Email); MimeType commentMimetype; MimeType.TryParse(c.ContentMimeType, out commentMimetype); entry.AddContent(c.Content); XUri entryLink = PageBL.GetUriUi(page).WithFragment("comment" + c.Number); entry.AddLink(entryLink, XAtomBase.LinkRelation.Alternate, null, null, null); entry.AddLink(GetUri(c).At("content"), XAtomBase.LinkRelation.Enclosure, commentMimetype, c.Content.Length, "content"); feed.End(); } return(feed); }