Views: 314
Number of votes: 0
Average rating:

Job for deleting removed properties

I've been annoyed by properties staying on page types after deleting them from code, especially on the .Net 5 version where "From Code" doesn't seem to work. I couldn't find a way to do this, so I wrote this quick and dirty job for removing them. I simply load all properties from optimizely, and check if a property with the same name exists on the type, and if not, delete it.

It has not been tested thoroughly, and I would definitely not use it in a production environment, but it saves me a lot of annoynance when working locallly.

This deletes all data related to the property, so use with caution.

public class RemovedDeletedPropertiesJob : ScheduledJobBase
        private readonly IContentTypeRepository _contentTypeRepository;
        private readonly IPropertyDefinitionRepository _propertyDefinitionRepository;

        private int _amountDeleted;
        public RemovedDeletedPropertiesJob(IContentTypeRepository contentTypeRepository, 
            IPropertyDefinitionRepository propertyDefinitionRepository)
            _contentTypeRepository = contentTypeRepository;
            _propertyDefinitionRepository = propertyDefinitionRepository;
        public override string Execute()
            _amountDeleted = 0;
            foreach (var contentType in _contentTypeRepository.List())
                var clone = contentType.CreateWritableClone() as ContentType;
                if(clone == null) continue;
                foreach (var prop in _propertyDefinitionRepository.List(contentType.ID))
                        if (contentType.ModelType.GetProperty(prop.Name) == null)
                    catch (Exception e) { }

            return $"Removed {_amountDeleted} properties";
Nov 05, 2021

Per Nergård
( By Per Nergård, 11/5/2021 12:52:13 PM)

I did this MissingProperties initmodule/plugin a long tme ago but the logic in that for identifying missing properties does not work in :Net Core version?

Christian Thorvik
( By Christian Thorvik, 11/5/2021 1:21:50 PM)

I only found the old blog post where the code is missing, so I haven't seen this one. It seems to work though. Only the appsettings part doesn't work, but that's simple enough to fix

Per Nergård
( By Per Nergård, 11/5/2021 1:41:59 PM)


Please login to comment.