public static PeriodCreator PeriodCreator(Action <EventStack> events = null) { if (events == null) { return(new PeriodCreator(History.Empty)); } var eventStack = new EventStack(); events.Invoke(eventStack); return(new PeriodCreator(new History(eventStack.All()))); }
public static Period Period(Action <EventStack> events = null) { var periodName = PeriodName.From(3, 2019); if (events == null) { return(WalletMate.Domain.Periods.Period.Create(periodName)); } var periodCreated = new PeriodCreated(periodName); var eventStack = new EventStack(); events.Invoke(eventStack); var history = new History(new List <IDomainEvent> { periodCreated }.Concat(eventStack.All()).ToList()); return(new Period(history)); }