public IEnumerable <IPermissionApplication> GetPermissions(GetCustomEntityRenderSummariesByUrlSlugQuery query)
        {
            var definition = _customEntityDefinitionRepository.GetByCode(query.CustomEntityDefinitionCode);

            EntityNotFoundException.ThrowIfNull(definition, query.CustomEntityDefinitionCode);

            yield return(new CustomEntityReadPermission(definition));
        }
Beispiel #2
0
        private async Task <CustomEntityRenderSummary> GetMenuByIdAsync(string menuId)
        {
            var customEntityQuery = new GetCustomEntityRenderSummariesByUrlSlugQuery(SimpleMenuDefinition.DefinitionCode, menuId);
            var menus             = await _customEntityRepository.GetCustomEntityRenderSummariesByUrlSlugAsync(customEntityQuery);

            // Forcing UrlSlug uniqueness is a setting on the custom entity definition and therefpre
            // the query has to account for multiple return items. Here we only expect one item.
            return(menus.FirstOrDefault());
        }
        private async Task <CustomEntityRenderSummary> GetSnippetByIdAsync(string name)
        {
            var customEntityQuery = new GetCustomEntityRenderSummariesByUrlSlugQuery(SnippetCustomEntityDefinition.DefinitionCode, name);
            var snippets          = await ContentRepository.ExecuteQueryAsync(customEntityQuery);

            // Forcing UrlSlug uniqueness is a setting on the custom entity definition and therefpre
            // the query has to account for multiple return items. Here we only expect one item.
            return(snippets.FirstOrDefault());
        }
Beispiel #4
0
        public IDomainRepositoryQueryContext <ICollection <CustomEntityRenderSummary> > AsRenderSummaries()
        {
            var query = new GetCustomEntityRenderSummariesByUrlSlugQuery()
            {
                CustomEntityDefinitionCode = _customEntityDefinition.CustomEntityDefinitionCode,
                UrlSlug = _urlSlug
            };

            return(DomainRepositoryQueryContextFactory.Create(query, ExtendableContentRepository));
        }
Beispiel #5
0
        public async Task <string> GetSetting(string name)
        {
            var customEntityQuery = new GetCustomEntityRenderSummariesByUrlSlugQuery(AdminSettingCustomEntityDefinition.DefinitionCode, name);
            var settings          = await ContentRepository.ExecuteQueryAsync(customEntityQuery);

            var setting = settings?.FirstOrDefault();

            if (setting == null)
            {
                throw new ArgumentException($"Could not find any admin setting with name '{name}'.");
            }

            return(((AdminSettingDataModel)setting.Model).Value);
        }
Beispiel #6
0
        public async Task <ICollection <CustomEntityRenderSummary> > ExecuteAsync(GetCustomEntityRenderSummariesByUrlSlugQuery query, IExecutionContext executionContext)
        {
            var dbResult = await _dbContext
                           .CustomEntityPublishStatusQueries
                           .AsNoTracking()
                           .Include(e => e.CustomEntityVersion)
                           .ThenInclude(e => e.CustomEntity)
                           .FilterActive()
                           .FilterByCustomEntityDefinitionCode(query.CustomEntityDefinitionCode)
                           .FilterByCustomEntityUrlSlug(query.UrlSlug)
                           .FilterByStatus(query.PublishStatus, executionContext.ExecutionDate)
                           .Select(e => e.CustomEntityVersion)
                           .ToListAsync();

            if (!dbResult.Any())
            {
                return(Array.Empty <CustomEntityRenderSummary>());
            }

            var result = await _customEntityRenderSummaryMapper.MapAsync(dbResult, executionContext);

            return(result);
        }
Beispiel #7
0
        private IDomainRepositoryQueryMutator <ICollection <CustomEntityRenderSummary>, CustomEntityRenderSummary> AsRenderSummaryInternal(PublishStatusQuery?publishStatusQuery)
        {
            if (!_customEntityDefinition.ForceUrlSlugUniqueness)
            {
                throw new InvalidOperationException($"{nameof(AsRenderSummary)} cannot be used if the custom entity definition has {nameof(_customEntityDefinition.ForceUrlSlugUniqueness)} set to false.");
            }

            var query = new GetCustomEntityRenderSummariesByUrlSlugQuery()
            {
                CustomEntityDefinitionCode = _customEntityDefinition.CustomEntityDefinitionCode,
                UrlSlug = _urlSlug
            };

            if (publishStatusQuery.HasValue)
            {
                query.PublishStatus = publishStatusQuery.Value;
            }

            var mapped = DomainRepositoryQueryContextFactory
                         .Create(query, ExtendableContentRepository)
                         .Map(r => r.SingleOrDefault());

            return(mapped);
        }
Beispiel #8
0
        public IEnumerable <IPermissionApplication> GetPermissions(GetCustomEntityRenderSummariesByUrlSlugQuery query)
        {
            var definition = _customEntityDefinitionRepository.GetRequiredByCode(query.CustomEntityDefinitionCode);

            yield return(new CustomEntityReadPermission(definition));
        }