private IEnumerable <Entities.ContentItem> GetContentItems(String path) { var fileSystem = _serviceProvider.GetService <IFile>(); var directory = _serviceProvider.GetService <IDirectory>(); var results = new List <Entities.ContentItem>(); var files = directory.EnumerateFiles(path); foreach (var file in files.Where(f => f.ToUpperInvariant().EndsWith(".MD", StringComparison.InvariantCulture))) { var contentText = fileSystem.ReadAllText(file); var categories = this.GetCategories(); Entities.ContentItem contentItem = null; try { contentItem = contentText.ParseContentItem(categories, this.MarkdownPipeline); } catch (Exception ex) { string message = $"Unable to parse a ContentItem from '{file}'\r\n\r\n{contentText}"; throw new InvalidOperationException(message, ex); } if (contentItem.IsNotNull()) { results.Add(contentItem); } } return(results); }
public ContentItemFileBuilder(Entities.ContentItem item, IEnumerable <Category> categories) { this.Id(item.Id); this.Author(item.Author); this.Title(item.Title); this.Description(item.Description); this.Content(item.Content); this.IsPublished(item.IsPublished); this.ShowInList(item.ShowInList); this.PublicationDate(item.PublicationDate); this.LastModificationDate(item.LastModificationDate); this.Slug(item.Slug); this.Tags(item.Tags); this.CategoryIds(item.CategoryIds, categories); this.MenuOrder(item.MenuOrder); }