Esempio n. 1
0
            internal Setting(
                TTier currentTier,
                TDataCenter currentDataCenter,
                SettingInfo <TTier, TDataCenter> info,
                IList <TDataCenter> availableDataCenters)
            {
                Name        = info.Name;
                Description = info.Description;
                TypeName    = info.PropertyInfo.PropertyType.FullName;
                IsEnum      = info.PropertyInfo.PropertyType.IsEnum;

                var activeValue = info.GetActiveValueFor(currentTier, currentDataCenter);

                if (activeValue.IsOverride)
                {
                    ActiveOverride = activeValue;
                }

                DefaultValue = info.GetDefaultFor(currentTier, currentDataCenter);

                var sorter = GetComparerFor(currentTier, currentDataCenter);

                AllDefaults  = info.Defaults.OrderBy(v => v, sorter).ToList();
                AllOverrides = info.Overrides.OrderBy(v => v, sorter).ToList();

                if (IsEnum)
                {
                    EnumNames = EnumToDictionary(info.PropertyInfo.PropertyType);
                }

                AllowsOverrides = availableDataCenters.ToDictionary(
                    dc => dc.ToString(),
                    dc => info.CanSetOverrideFor(currentTier, dc));

                RequiresRestart = Attribute.IsDefined(info.PropertyInfo, typeof(ChangeRequiresRestartAttribute));
            }
Esempio n. 2
0
 public OverrideKey(string appName, TTier tier, TDataCenter dataCenter)
 {
     AppName    = appName;
     Tier       = tier;
     DataCenter = dataCenter;
 }