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);
        }
Exemple #2
0
        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));
        }