public async Task <IDictionary <int, PageRoute> > ExecuteAsync(GetPageRouteLookupQuery query, IExecutionContext executionContext)
 {
     return(await _pageCache.GetOrAddAsync(() =>
     {
         return GetAllPageRoutesAsync(query, executionContext);
     }));
 }
        private async Task <IDictionary <int, PageRoute> > GetAllPageRoutesAsync(GetPageRouteLookupQuery query, IExecutionContext executionContext)
        {
            var dbPages = await GetPagesAsync();

            var dbPageVersionLookup = await GetPageVersionsAsync();

            var pageDirectories = await _queryExecutor.ExecuteAsync(new GetAllPageDirectoryRoutesQuery(), executionContext);

            var pageDirectoryLookup = pageDirectories.ToDictionary(d => d.PageDirectoryId);
            var templates           = await GetPageTemplatesAsync();

            var dbPageAccessRulesLookup = await GetAccessRulesAsync();

            var allLocales = await _queryExecutor.ExecuteAsync(new GetAllActiveLocalesQuery(), executionContext);

            var routes = Map(
                dbPages,
                dbPageVersionLookup,
                pageDirectoryLookup,
                templates,
                dbPageAccessRulesLookup,
                allLocales
                );

            return(routes);
        }
 public IEnumerable <IPermissionApplication> GetPermissions(GetPageRouteLookupQuery query)
 {
     yield return(new PageReadPermission());
 }