private CkEntityAttributeDto CreateCkEntityAttributeDto(AttributeCacheItem attributeCacheItem)
        {
            var ckEntityAttributeDto = new CkEntityAttributeDto
            {
                AttributeId            = attributeCacheItem.AttributeId,
                AttributeName          = StringExtensions.ToCamelCase(attributeCacheItem.AttributeName),
                AttributeValueType     = (AttributeValueTypesDto)attributeCacheItem.AttributeValueType,
                IsAutoCompleteEnabled  = attributeCacheItem.IsAutoCompleteEnabled,
                AutoCompleteTexts      = attributeCacheItem.AutoCompleteTexts,
                AutoCompleteFilter     = attributeCacheItem.AutoCompleteFilter,
                AutoCompleteLimit      = attributeCacheItem.AutoCompleteLimit,
                AutoIncrementReference = attributeCacheItem.AutoIncrementReference,
                Attribute = CkAttributeDtoType.CreateCkAttributeDto(attributeCacheItem)
            };

            return(ckEntityAttributeDto);
        }
        private object ResolveAttributes(IResolveConnectionContext <CkEntityDto> ctx)
        {
            var graphQlContext = (GraphQLUserContext)ctx.UserContext;

            ctx.TryGetArgument(Statics.AttributeNamesFilterArg, out IEnumerable <string> filterAttributeNames);

            var entityCacheItem = graphQlContext.TenantContext.CkCache.GetEntityCacheItem(ctx.Source.CkId);

            IEnumerable <AttributeCacheItem> resultList;

            if (filterAttributeNames == null)
            {
                resultList = entityCacheItem.Attributes.Values;
            }
            else
            {
                resultList =
                    entityCacheItem.Attributes.Values.Where(a =>
                                                            filterAttributeNames.Contains(StringExtensions.ToCamelCase(a.AttributeName)));
            }

            return(ConnectionUtils.ToConnection(resultList.Select(CreateCkEntityAttributeDto), ctx));
        }