public ReadmeJournalEntryCollection GetReadmeEntries(LocalDate earliestDate, bool includeFuture) { var readmeCollection = new ReadmeJournalEntryCollection(earliestDate, includeFuture); foreach (var file in _markdownFiles.FindAll()) { var reader = _readerWriterFactory.CreateReader(file); readmeCollection.Add(reader); } return(readmeCollection); }
public void OpenRandomEntry() { var entries = _markdownFiles.FindAll(); if (entries.Count == 0) { throw new InvalidOperationException("I couldn't find any journal entries. Did you pass in the right root directory?"); } var index = new Random().Next(0, entries.Count - 1); _systemProcess.Start(entries[index]); }
public static Journal Open(IJournalReaderWriterFactory readerWriterFactory, IMarkdownFiles markdownFiles, ISystemProcess systemProcess) { if (!MemoryCache.Default.Contains(nameof(FirstEntryDate))) { var firstEntryDate = markdownFiles .FindAll(fileNamesOnly: true) .Select(md => FileNameWithExtensionPattern.Parse(md)) .Select(x => x.Value) .OrderBy(dt => dt) .First(); MemoryCache.Default.Set(nameof(FirstEntryDate), firstEntryDate, Policy); } return(new Journal(readerWriterFactory, markdownFiles, systemProcess)); }