public async Task <IEnumerable <CustomEntityRoute> > ExecuteAsync(GetCustomEntityRoutesByDefinitionCodeQuery query, IExecutionContext executionContext)
 {
     return(await _customEntityCache.GetOrAddAsync(query.CustomEntityDefinitionCode, async() =>
     {
         var dbRoutes = await GetDbQuery(query).ToListAsync();
         return MapRoutes(query, dbRoutes);;
     }));
 }
        public async Task <ICollection <CustomEntityRoute> > ExecuteAsync(GetCustomEntityRoutesByDefinitionCodeQuery query, IExecutionContext executionContext)
        {
            return(await _customEntityCache.GetOrAddAsync(query.CustomEntityDefinitionCode, async() =>
            {
                var dbRoutes = await _dbContext
                               .CustomEntities
                               .Include(c => c.CustomEntityVersions)
                               .Include(c => c.Locale)
                               .AsNoTracking()
                               .Where(e => e.CustomEntityDefinitionCode == query.CustomEntityDefinitionCode && (e.LocaleId == null || e.Locale.IsActive))
                               .ToListAsync();

                var allLocales = await _queryExecutor.ExecuteAsync(new GetAllActiveLocalesQuery(), executionContext);
                var localesLookup = allLocales.ToDictionary(l => l.LocaleId);

                return await MapRoutesAsync(query, dbRoutes, localesLookup);;
            }));
        }