/// <summary>
 /// Добавить ошибки результирующего ответа или вернуть результат с ошибками для ответа со значением
 /// </summary>
 public static IResultValue <TValue> ResultValueBindErrorsOk <TValue>(this IResultValue <TValue> @this,
                                                                      Func <TValue, IResultError> okFunc) =>
 @this.
 ResultValueBindOk(value => okFunc.Invoke(value).
                   Map(resultError => resultError.ToResultValue(value)));
 /// <summary>
 /// Результирующий ответ со значением с обработкой функции при положительном условии
 /// </summary>
 public static IResultValue <TValueOut> ResultValueTryOk <TValueIn, TValueOut>(this IResultValue <TValueIn> @this,
                                                                               Func <TValueIn, TValueOut> func, IErrorResult error) =>
 @this.ResultValueBindOk(value => ResultValueTry(() => func.Invoke(value), error));
 /// <summary>
 /// Выполнение положительного условия или возвращение предыдущей ошибки в результирующем ответе значения с возвращением к коллекции
 /// </summary>
 public static IResultCollection <TValueOut> ResultValueBindOkToCollection <TValueIn, TValueOut>(this IResultValue <TValueIn> @this,
                                                                                                 Func <TValueIn, IResultCollection <TValueOut> > okFunc) =>
 @this.
 ResultValueBindOk(okFunc).
 ToResultCollection();