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);
        }