private IEnumerable <BlogPost> FindPublishedBlogPosts(IPagination pagination) { // The query uses two select statements so BlogPostSerialization.DeserializeFromFile is only called for requested files. var blogPosts = ( from yearDirectory in Directory.EnumerateDirectories(_blogDirectory.FullName).OrderByDescending(d => d) from monthDirectory in Directory.EnumerateDirectories(yearDirectory).OrderByDescending(d => d) from dayDirectory in Directory.EnumerateDirectories(monthDirectory).OrderByDescending(d => d) from blogPostFile in Directory.EnumerateFiles(dayDirectory, "*.md").OrderByDescending(d => d) select blogPostFile) .Skip(pagination.SkipCountForLinqQueries()) .Take(pagination.PageSize) .Select(blogPostFile => BlogPostSerialization.DeserializeFromFile(blogPostFile, PublishedDirectory, YamlMarkdown)); return(blogPosts); }
public void WhenICallBlogPost_DeserializeMarkdownWithFrontMatter() { _actual.BlogPost = BlogPostSerialization.Deserialize("dummy/relative/uri", _given.MarkdownWithFrontMatter, _yamlMarkdown); }