Exemple #1
0
        public async Task <ActionResult <LocalFacetsModel> > GetPropertyFacets(EntityTypeDetailsRequest request)
        {
            if (!_permissionService.IsAllowed(new ActionRequestInfo(HttpContext, _implementations, null, ActionTypeEnum.ManageMetadata)))
            {
                return(Unauthorized());
            }

            var validationMessage = await MetadataValidationLogic.GetPropertyFacetsValidation(request, _dbContext);

            if (!string.IsNullOrEmpty(validationMessage))
            {
                return(StatusCode(400, validationMessage));
            }
            var result = new LocalFacetsModel()
            {
                LocalFacets = (await _dbContext.PropertyFacetValues.Where(x => x.Property.OwnerEntityTypeId == request.EntityTypeId)
                               .Select(v => new
                {
                    v.Id,
                    TypeName = v.Property.Name,
                    FacetName = v.FacetDefinition.Name,
                    v.Value
                }).ToListAsync())
                              .GroupBy(v => v.TypeName)
                              .ToDictionary(v => v.Key, v => v.ToDictionary(g => g.FacetName, g => g.Value))
            };

            return(result);
        }
Exemple #2
0
        public async Task <ActionResult <LocalFacetsModel> > GetTypeFacets()
        {
            if (!_permissionService.IsAllowed(new ActionRequestInfo(HttpContext, _implementations, null, ActionTypeEnum.ManageMetadata)))
            {
                return(Unauthorized());
            }
            var result = new LocalFacetsModel()
            {
                LocalFacets = (await _dbContext.EntityFacetValues.Select(v => new
                {
                    v.Id,
                    TypeName = v.Entity.Name,
                    FacetName = v.FacetDefinition.Name,
                    v.Value
                }).ToListAsync())
                              .GroupBy(v => v.TypeName)
                              .ToDictionary(v => v.Key, v => v.ToDictionary(g => g.FacetName, g => g.Value))
            };

            return(result);
        }