protected virtual JournalRunResult Run(IDbContext db, TScheduledJournal scheduledJournal) { JournalRunResult result = new JournalRunResult(); var split = ResolveTopSplit(db, scheduledJournal); var builder = SelectJournalBuilder(db, scheduledJournal); foreach (var item in split) { var journal = builder.BuildJournal(db, scheduledJournal, item.Role, item.Percentage); _journalPoster.Post(db, journal); result.Journals.Add(journal); } IncrementTrigger(db, scheduledJournal); return(result); }