public IEnumerable <IPermissionApplication> GetPermissions(GetCustomEntityRenderSummariesByUrlSlugQuery query) { var definition = _customEntityDefinitionRepository.GetByCode(query.CustomEntityDefinitionCode); EntityNotFoundException.ThrowIfNull(definition, query.CustomEntityDefinitionCode); yield return(new CustomEntityReadPermission(definition)); }
public async Task <ICollection <CustomEntityRenderSummary> > ExecuteAsync(GetCustomEntityRenderSummariesByUrlSlugQuery query, IExecutionContext executionContext) { var dbResult = await _dbContext .CustomEntityPublishStatusQueries .AsNoTracking() .FilterActive() .FilterByCustomEntityDefinitionCode(query.CustomEntityDefinitionCode) .FilterByCustomEntityUrlSlug(query.UrlSlug) .FilterByStatus(query.PublishStatus, executionContext.ExecutionDate) .Select(e => e.CustomEntityVersion) .Include(e => e.CustomEntity) .ToListAsync(); if (!dbResult.Any()) { return(Array.Empty <CustomEntityRenderSummary>()); } var result = await _customEntityRenderSummaryMapper.MapAsync(dbResult, executionContext); return(result); }
/// <summary> /// Returns custom entities filtered on the url slug value. This query /// can return multiple custom entities because unique UrlSlugs is an /// optional setting on the custom entity definition. /// </summary> /// <param name="query">Query parameters.</param> /// <param name="executionContext">Optional execution context to use when executing the query. Useful if you need to temporarily elevate your permission level.</param> public Task <ICollection <CustomEntityRenderSummary> > GetCustomEntityRenderSummariesByUrlSlugAsync(GetCustomEntityRenderSummariesByUrlSlugQuery query, IExecutionContext executionContext = null) { return(_queryExecutor.ExecuteAsync(query, executionContext)); }