/// <summary> /// Добавить асинхронно ошибки результирующего ответа или вернуть результат с ошибками для ответа со значением /// </summary> public static async Task <IResultValue <TValue> > ResultValueBindErrorsOkAsync <TValue>(this IResultValue <TValue> @this, Func <TValue, Task <IResultError> > okFunc) => await @this. ResultValueBindOkAsync(value => okFunc.Invoke(value). MapTaskAsync(resultError => resultError.ToResultValue(value)));
/// <summary> /// Результирующий ответ со значением с обработкой функции при положительном условии для задачи-объекта /// </summary> public static async Task <IResultValue <TValueOut> > ResultValueTryOkAsync <TValueIn, TValueOut>(this IResultValue <TValueIn> @this, Func <TValueIn, Task <TValueOut> > func, IErrorResult error) => await @this. ResultValueBindOkAsync(value => ResultValueTryAsync(() => func.Invoke(value), error));
/// <summary> /// Выполнение асинхронного положительного условия или возвращение предыдущей ошибки в результирующем ответе значения с возвращением к коллекции /// </summary> public static async Task <IResultCollection <TValueOut> > ResultValueBindOkToCollectionAsync <TValueIn, TValueOut>(this IResultValue <TValueIn> @this, Func <TValueIn, Task <IResultCollection <TValueOut> > > okFunc) => await @this. ResultValueBindOkAsync(valueIn => okFunc(valueIn). MapAsync(resultCollection => resultCollection.ToResultValue())). ToResultCollectionTaskAsync();