public async Task <IDictionary <int, RootEntityMicroSummary> > ExecuteAsync(GetCustomEntityVersionEntityMicroSummariesByIdRangeQuery query, IExecutionContext executionContext)
        {
            var results = await Query(query).ToDictionaryAsync(e => e.ChildEntityId, e => (RootEntityMicroSummary)e);

            EnforcePermissions(results, executionContext);

            return(results);
        }
        private IQueryable <ChildEntityMicroSummary> Query(GetCustomEntityVersionEntityMicroSummariesByIdRangeQuery query)
        {
            var dbQuery = _dbContext
                          .CustomEntityVersions
                          .AsNoTracking()
                          .Where(v => query.CustomEntityVersionIds.Contains(v.CustomEntityVersionId))
                          .Select(v => new ChildEntityMicroSummary()
            {
                ChildEntityId        = v.CustomEntityVersionId,
                RootEntityId         = v.CustomEntityId,
                RootEntityTitle      = v.Title,
                EntityDefinitionName = v.CustomEntity.CustomEntityDefinition.EntityDefinition.Name,
                EntityDefinitionCode = v.CustomEntity.CustomEntityDefinition.EntityDefinition.EntityDefinitionCode,
                IsPreviousVersion    = !v.CustomEntityPublishStatusQueries.Any()
            });

            return(dbQuery);
        }