Ejemplo n.º 1
0
        public ContentListData GetContentListData(Guid repositoryApiId, Guid listId, string filter)
        {
            var definition = new ContentListDefinitionRepository().FindContentVersions(By.ContentId(listId)).Result
                             .Single();

            var repo = RepositoryActivator.ActivateRepository(repositoryApiId);
            List <WarpCoreEntity> allItems = null;

            var entityType = RepositoryTypeResolver.ResolveTypeByApiId(repositoryApiId);
            var tokens     = new BooleanExpressionParser().ReadBooleanExpressionTokens(filter);
            var expression = new BooleanExpressionTokenReader().CreateBooleanExpressionFromTokens(tokens);



            if (repo is IUnversionedContentRepository unversionedRepo)
            {
                allItems = unversionedRepo.FindContent(expression)
                           .Cast <WarpCoreEntity>()
                           .ToList();
            }

            if (repo is IVersionedContentRepository versionedRepo)
            {
                allItems = versionedRepo.FindContentVersions(expression, ContentEnvironment.Draft)
                           .Cast <WarpCoreEntity>()
                           .ToList();
            }

            if (allItems == null)
            {
                throw new Exception();
            }

            var propertyNameLookup = definition.Fields.ToLookup(x => x.PropertyName);


            var wrapper = new ContentListData();

            foreach (var item in allItems)
            {
                var dict = item.GetPropertyValues(x => propertyNameLookup.Contains(x.Name));
                dict[nameof(item.ContentId)] = item.ContentId.ToString();
                wrapper.Items.Add(dict);
            }


            return(wrapper);
        }
Ejemplo n.º 2
0
 public ReadTokens()
 {
     _parser      = new BooleanExpressionParser();
     _tokenReader = new BooleanExpressionTokenReader();
 }