public void AddEvents(IEnumerable <object> events) { if (events == null) { throw new ArgumentNullException(nameof(events)); } foreach (var @event in events.Select(x => new ItemWithType(x))) { NewEventsCollection.Add(@event); } currentState = (TState)EventApplier.Apply(stateType, currentState, events.Select(x => new ItemWithType(x))); }