private static ItemsFilterData GetFilter(GetCountParameters parameters)
        {
            ItemsFilterData filter;
            if (parameters.OrganizationalItemId.EndsWith("-1")) // is Publication
            {
                filter = new RepositoryItemsFilterData();
            }
            else // is Folder or Structure Group
            {
                filter = new OrganizationalItemItemsFilterData();
            }

            filter.Recursive = true;

            List<ItemType> itemTypesList = new List<ItemType>();
            if (parameters.CountFolders) { itemTypesList.Add(ItemType.Folder); }
            if (parameters.CountComponents) { itemTypesList.Add(ItemType.Component); }
            if (parameters.CountSchemas) { itemTypesList.Add(ItemType.Schema); }
            if (parameters.CountComponentTemplates) { itemTypesList.Add(ItemType.ComponentTemplate); }
            if (parameters.CountPageTemplates) { itemTypesList.Add(ItemType.PageTemplate); }
            if (parameters.CountTemplateBuildingBlocks) { itemTypesList.Add(ItemType.TemplateBuildingBlock); }
            if (parameters.CountStructureGroups) { itemTypesList.Add(ItemType.StructureGroup); }
            if (parameters.CountPages) { itemTypesList.Add(ItemType.Page); }
            if (parameters.CountCategories) { itemTypesList.Add(ItemType.Category); }
            if (parameters.CountKeywords) { itemTypesList.Add(ItemType.Keyword); }

            filter.ItemTypes = itemTypesList.ToArray();
            return filter;
        }
        public ItemCountResult GetCount(GetCountParameters parameters)
        {
            try
            {
                if (parameters == null || parameters.OrganizationalItemId == null)
                {
                    throw new ArgumentNullException("parameters");
                }

                DateTime start = DateTime.Now;
                ItemsFilterData filter = GetFilter(parameters);
                XElement listXml = Client.GetListXml(parameters.OrganizationalItemId, filter);

                return ProcessCounts(listXml, start);
            }
            catch (Exception ex)
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
Esempio n. 3
0
        public ItemCountResult GetCount(GetCountParameters parameters)
        {
            try
            {
                if (parameters == null || parameters.OrganizationalItemId == null)
                {
                    throw new ArgumentNullException("parameters");
                }

                DateTime        start   = DateTime.Now;
                ItemsFilterData filter  = GetFilter(parameters);
                XElement        listXml = Client.GetListXml(parameters.OrganizationalItemId, filter);

                return(ProcessCounts(listXml, start));
            }
            catch (Exception ex)
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
Esempio n. 4
0
        private static ItemsFilterData GetFilter(GetCountParameters parameters)
        {
            ItemsFilterData filter;

            if (parameters.OrganizationalItemId.EndsWith("-1")) // is Publication
            {
                filter = new RepositoryItemsFilterData();
            }
            else // is Folder or Structure Group
            {
                filter = new OrganizationalItemItemsFilterData();
            }

            filter.Recursive = true;

            List <ItemType> itemTypesList = new List <ItemType>();

            if (parameters.CountFolders)
            {
                itemTypesList.Add(ItemType.Folder);
            }
            if (parameters.CountComponents)
            {
                itemTypesList.Add(ItemType.Component);
            }
            if (parameters.CountSchemas)
            {
                itemTypesList.Add(ItemType.Schema);
            }
            if (parameters.CountComponentTemplates)
            {
                itemTypesList.Add(ItemType.ComponentTemplate);
            }
            if (parameters.CountPageTemplates)
            {
                itemTypesList.Add(ItemType.PageTemplate);
            }
            if (parameters.CountTemplateBuildingBlocks)
            {
                itemTypesList.Add(ItemType.TemplateBuildingBlock);
            }
            if (parameters.CountStructureGroups)
            {
                itemTypesList.Add(ItemType.StructureGroup);
            }
            if (parameters.CountPages)
            {
                itemTypesList.Add(ItemType.Page);
            }
            if (parameters.CountCategories)
            {
                itemTypesList.Add(ItemType.Category);
            }
            if (parameters.CountKeywords)
            {
                itemTypesList.Add(ItemType.Keyword);
            }

            filter.ItemTypes = itemTypesList.ToArray();
            return(filter);
        }