Inheritance: PropertySettingsUpdater
        public virtual IEnumerable <GlobalPropertySettingsUpdater> GetGlobalPropertySettingsUpdaters()
        {
            var updaters             = new List <GlobalPropertySettingsUpdater>();
            IEnumerable <Type> types = GetTypesInApplicationDomain().Concrete();

            foreach (Type type in types)
            {
                foreach (var interfaceType in type.GetInterfaces())
                {
                    if (!interfaceType.IsGenericType)
                    {
                        continue;
                    }

                    if (!typeof(IUpdateGlobalPropertySettings <>).IsAssignableFrom(interfaceType.GetGenericTypeDefinition()))
                    {
                        continue;
                    }
                    var settingsType = interfaceType.GetGenericArguments().First();
                    var instance     = Activator.CreateInstance(type);
                    var updater      = new GlobalPropertySettingsUpdater(settingsType, instance);
                    updaters.Add(updater);
                }
            }

            return(updaters);
        }
 private void UpdateWrapperValues(GlobalPropertySettingsUpdater updater, PropertySettingsWrapper wrapper)
 {
     if (updater.Description != null)
     {
         wrapper.Description = updater.Description;
     }
     if (updater.IsDefault.HasValue)
     {
         wrapper.IsDefault = updater.IsDefault.Value;
     }
 }
        public virtual IEnumerable<GlobalPropertySettingsUpdater> GetGlobalPropertySettingsUpdaters()
        {
            var updaters = new List<GlobalPropertySettingsUpdater>();
            IEnumerable<Type> types = GetTypesInApplicationDomain().Concrete();

            foreach (Type type in types)
            {
                foreach (var interfaceType in type.GetInterfaces())
                {
                    if (!interfaceType.IsGenericType)
                        continue;

                    if (!typeof(IUpdateGlobalPropertySettings<>).IsAssignableFrom(interfaceType.GetGenericTypeDefinition()))
                        continue;
                    var settingsType = interfaceType.GetGenericArguments().First();
                    var instance = Activator.CreateInstance(type);
                    var updater = new GlobalPropertySettingsUpdater(settingsType, instance);
                    updaters.Add(updater);
                }
            }

            return updaters;
        }
 static string WrapperValuesSerialized(GlobalPropertySettingsUpdater updater, PropertySettingsWrapper wrapper)
 {
     var hashCode = updater.GetSettingsHashCode(wrapper.PropertySettings);
     return string.Concat((wrapper.Description ?? "null"), "||", wrapper.IsDefault, "||", hashCode);
 }