internal static void EnsureBlogExists(String blogGuid, out BlogLINQ blogLinq, String message, MinimaServiceLINQDataContext db) { Func <BlogLINQ, Boolean> blogExists = x => x.BlogGuid == blogGuid; blogLinq = (from p in db.Blogs where p.BlogGuid == blogGuid select p).FirstOrDefault(); if (blogLinq == null) { throw new ArgumentException(message); } }
internal static void EnsureBlogExistsViaBlogEntryOrBlogGuid(String blogGuid, out BlogLINQ blogLinq, String message, MinimaServiceLINQDataContext db) { Func <BlogLINQ, Boolean> blogExists = x => x.BlogGuid == blogGuid; blogLinq = db.Blogs.SingleOrDefault(blogExists); if (blogLinq == null) { //+ perhaps this is actually a blog entry guid Func <BlogEntryLINQ, Boolean> blogEntryExists = x => x.BlogEntryGuid == blogGuid; BlogEntryLINQ blogEntryLinq = db.BlogEntries.SingleOrDefault(blogEntryExists); if (blogEntryLinq != null) { blogLinq = blogEntryLinq.Blog; } else { throw new ArgumentException(message); } } }
public static String Build(BlogEntryLINQ blogEntryLinq, BlogLINQ blogLinq) { DateTime postDateTime = blogEntryLinq.BlogEntryPostDateTime; BlogEntryUrlMappingLINQ blogEntryUrlMappingLinq = blogEntryLinq.BlogEntryUrlMappings.FirstOrDefault(); if (blogEntryUrlMappingLinq == null) { return(String.Empty); } String urlMapping = blogEntryUrlMappingLinq.BlogEntryUrlMappingName; String baseBlogUrl = blogLinq.BlogPrimaryUrl; //+ StringBuilder blogEntryPage = new StringBuilder(); blogEntryPage.Append(postDateTime.Year); blogEntryPage.Append("/"); String month = String.Empty; if (postDateTime.Month.ToString().Length < 2) { month = "0" + postDateTime.Month.ToString(); } else { month = postDateTime.Month.ToString(); } blogEntryPage.Append(String.Format("{0:00}/", postDateTime.Month)); //+ if (!String.IsNullOrEmpty(urlMapping)) { blogEntryPage.Append(urlMapping); } else { throw new FormatException("BlogEntryPostURlMapping not set"); } //+ return(String.Format("{0}{1}", baseBlogUrl, blogEntryPage.ToString())); }
public List <BlogMetaData> GetBlogListForAssociatedAuthor(String authorEmail) { using (DataContext db = new DataContext(ServiceConfiguration.ConnectionString)) { //+ ensure blog exists AuthorLINQ authorLinq; Validator.EnsureAuthorExists(authorEmail, out authorLinq, db); //+ List <Int32> blogEntryIdList = db.AuthorBlogAssociations .Where(p => p.AuthorId == authorLinq.AuthorId) .Select(p => p.BlogId) .ToList(); List <BlogMetaData> blogMetaDataList = new List <BlogMetaData>(); foreach (Int32 blogId in blogEntryIdList) { BlogMetaData blogMetaData = new BlogMetaData(); BlogLINQ blogLinq = db.Blogs.Single(p => p.BlogId == blogId); blogMetaData.Description = blogLinq.BlogDescription; blogMetaData.FeedTitle = blogLinq.BlogFeedTitle; blogMetaData.FeedUri = new Uri(blogLinq.BlogFeedUrl); blogMetaData.Guid = blogLinq.BlogGuid; blogMetaData.Title = blogLinq.BlogTitle; blogMetaData.Uri = new Uri(blogLinq.BlogPrimaryUrl); blogMetaData.CreateDateTime = blogLinq.BlogCreateDate; blogMetaData.LabelList = new List <Label>( blogLinq.Labels.Select(p => new Label { Guid = p.LabelGuid, FriendlyTitle = p.LabelFriendlyTitle, Title = p.LabelTitle }) ); blogMetaDataList.Add(blogMetaData); } //+ return(blogMetaDataList); } }
//- $TransformBlogEntryList -// private IQueryable <BlogEntry> TransformBlogEntryList(IQueryable <BlogEntryLINQ> blogEntryLinqList, BlogLINQ blogLinq, Boolean metaDataOnly) { Func <BlogEntryLINQ, BlogEntry> blogEntryTransformation = be => new BlogEntry { Title = be.BlogEntryTitle, Content = metaDataOnly ? String.Empty : be.BlogEntryText, Guid = be.BlogEntryGuid, Status = be.BlogEntryStatusId, PostDateTime = be.BlogEntryPostDateTime, ModifyDateTime = be.BlogEntryModifyDateTime, MappingNameList = new List <String>( be.BlogEntryUrlMappings.Select(p => p.BlogEntryUrlMappingName) ), LabelList = new List <Label>( be.LabelBlogEntries.Select(p => new Label { Guid = p.Label.LabelGuid, FriendlyTitle = p.Label.LabelFriendlyTitle, Title = p.Label.LabelTitle }) ) }; //+ return((IQueryable <BlogEntry>)blogEntryLinqList.Select(blogEntryTransformation)); }
//- ~EnsureBlogExists -// internal static void EnsureBlogExists(String blogGuid, out BlogLINQ blogLinq, MinimaServiceLINQDataContext db) { EnsureBlogExists(blogGuid, out blogLinq, Message.InvalidBlogGuid, db); }