BlendInteractive.ExtendedCategories.CategoriesManager.IndexContentPage C# (CSharp) Method

IndexContentPage() public static method

public static IndexContentPage ( IContent content ) : int
content IContent
return int
        public static int IndexContentPage(IContent content)
        {
            // Does this type have any CategoryAssignment properties?
            if (!HasCategoryAssignments(content))
            {
                return 0;
            }

            var baseType = content.GetType().BaseType;

            var contentRef = content.ContentLink.ToReferenceWithoutVersion();

            var categoryRepo = ServiceLocator.Current.GetInstance<ICategoryRepository>();
            categoryRepo.DeleteAssignmentsByContent(contentRef);

            var assignmentsAdded = 0;
            foreach (var propertyName in CategoryAssignmentProperties[baseType])
            {
                var propertyData = content.Property[propertyName].Value;
                if(propertyData == null)
                {
                    continue;
                }
                foreach (var value in (IEnumerable<ContentReference>)propertyData)
                {
                    assignmentsAdded++;
                    categoryRepo.AddAssignment(contentRef, value, propertyName);
                }
            }

            return assignmentsAdded;
        }