/// <summary> /// Создает настройку для данного менеджера. /// </summary> /// <typeparam name="T">Тип значения настройки.</typeparam> /// <param name="settingName">Идентификатор настройки.</param> /// <param name="settingValue">Значение настройки.</param> public Setting CreateSettingForManager(SettingID settingName, Object settingValue) { Setting result = new Setting(settingName, settingValue); this.AddSetting(result); return(result); }
public SettingValueTypeMismatchException(SettingID name, Type settingType, Type valueType) : base(string.Format(baseMessage + Environment.NewLine + nameNotice, name.Value) + Environment.NewLine + string.Format(typesMessage, settingType, valueType)) { this.SettingID = name; this.SettingType = settingType; this.ValueType = valueType; }
/// <summary> /// Получает настройку по ее идентификатору. /// </summary> /// <param name="name">Идентификатор настройки.</param> /// <returns>Объект настройки.</returns> public Setting GetSetting(SettingID name) { if (this.ContainsID(name)) { return(this.GetSettingByID(name)); } else { throw new SettingNotFoundException(name); } }
private Setting GetSettingByID(SettingID name) { foreach (var settingID in this.Settings.Keys) { if (settingID.Value.Equals(name.Value)) { return((Setting)this.Settings[settingID]); } } throw new SettingNotFoundException(name); }
private bool ContainsID(SettingID name) { bool found = false; foreach (var settingID in this.Settings.Keys) { if (settingID.Value.Equals(name.Value)) { found = true; break; } } return(found); }
public Setting(SettingID id, object value) { this.Name = id; this.Value = value; this.DefaultValue = value; }
public SettingValueTypeMismatchException(SettingID name) : base(string.Format(baseMessage + Environment.NewLine + nameNotice, name.Value)) { this.SettingID = name; }
/// <summary> /// Удаляет настройку по ее имени. /// </summary> /// <param name="name"></param> public void DeleteSetting <T>(SettingID name) { Setting removeableSetting = GetSetting(name); this.Settings.Remove(removeableSetting.Name); }
// NOTE : Нарушение концепции инкапсуляции. ///// <summary> ///// Получает список всех настроек игры. ///// </summary> ///// <returns>Список настроек игры.</returns> //public IEnumerable<Setting<T>> GetSettings() //{ // return this.Settings.Values; //} /// <summary> /// Устанавливает настройку с заданным именем в заданное значение. /// </summary> /// <param name="name">Имя настройки.</param> /// <param name="value">Значение настройки.</param> /// <exception cref="SettingValueTypeMismatchException">Исключение, /// возникающее при попытке записать значение неверного типа в настройку.</exception> public void SetSetting(SettingID settingID, Object value) { Setting setting = GetSetting(settingID); setting.SetValue(value); }
public SettingNotFoundException(SettingID name, string message) : base(String.Format(message + Environment.NewLine + nameNotice, name.Value)) { }
public SettingNotFoundException(SettingID name) : base(String.Format(baseMessage, name.Value)) { }