/// <summary> /// Attempst to modify the collection in the specified way. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="setting"></param> /// <param name="value"></param> /// <param name="context"></param> /// <param name="getter"></param> /// <returns></returns> public static IResult TrySetValue <T>(this IValueParser <T> setting, string value, Context context, Func <ICollection <T> > getter) { var cmActionResult = setting.TryGetCMAction(context, ref value); if (!cmActionResult.IsSuccess) { return(cmActionResult); } var convertResult = setting.TryConvertValue(value, out var result); if (!convertResult.IsSuccess) { return(convertResult); } return(setting.ModifyCollection(getter(), result, context)); }