/// <summary> /// Add a setting to the settings Dictionary (creating the dictionary if its missing) /// </summary> /// <param name="settings"></param> /// <param name="key"></param> /// <param name="value"></param> public static void AddSetting <TObject>(this HandlerSettings settings, string key, TObject value) { if (settings.Settings == null) { settings.Settings = new Dictionary <string, string>(); } settings.Settings[key] = value.ToString(); }
/// <summary> /// get a setting from the settings dictionary. /// </summary> /// <typeparam name="TResult"></typeparam> /// <param name="settings"></param> /// <param name="key"></param> /// <param name="defaultValue"></param> /// <returns></returns> public static TResult GetSetting <TResult>(this HandlerSettings settings, string key, TResult defaultValue) { if (settings.Settings != null && settings.Settings.ContainsKey(key)) { var attempt = settings.Settings[key].TryConvertTo <TResult>(); if (attempt) { return(attempt.Result); } } return(defaultValue); }
/// <summary> /// create a copy of this handlers settings /// </summary> /// <param name="settings"></param> /// <returns></returns> public static HandlerSettings Clone(this HandlerSettings settings) { return(new HandlerSettings { Actions = settings.Actions, Enabled = settings.Enabled, FailOnMissingParent = settings.FailOnMissingParent, UseFlatStructure = settings.UseFlatStructure, Group = settings.Group, GuidNames = settings.GuidNames, Settings = new Dictionary <string, string>(settings.Settings) }); }