public async Task <DifferentialChangeset> ExtractDifferentialChangeset(T1 id, IOrderedQueryable <HistoricalEvent> events) { var differentialChangeset = new DifferentialChangeset(); differentialChangeset.EntityId = id.ToString(); differentialChangeset.EntityTypeName = events.First().EntityName; differentialChangeset.Changesets = events.AggregateCombine(ExtractOneDifferentialChangeset <T2>); return(differentialChangeset); }