All

Inicializa uma nova instância de Continuation<(TFail1, TFail2, TFailN),(TSuccess1, TSuccess2, TSuccessN)> de acordo com os continuations informado nos parâmetros.

O novo Continuation<TFail, TSuccess> criado estará no estado Success somente quando todos os parâmetros também estiverem neste estado. Caso contrário ele será criado no estado Fail.

Como usar

Este método deve ser utilizado para unir diferentes valores Continuation em um único pipeline. É possível unir até quatro pipelines diferentes e todos os resultados serão agrupados em tuplas.

Unindo dois Continuations com sucesso

var continuation1 = 
    ContinuationModule.Resolve<string, int>(10);

var continuation2 = 
    ContinuationModule.Resolve<float, string>("number");

var result = ContinuationModule
                .All(continuation1, continuation2)
                .Then(values => $"{values.Item2} is {values.Item1}")

//result.IsSuccess = true
//result.Success = "number is 10"

Unindo Continuations quando um deles está no estado Fail

var continuation1 = 
    ContinuationModule.Resolve<string, int>(10);

var continuation2 = 
    ContinuationModule.Resolve<float, string>("number");

var continuation3 = 
    ContinuationModule.Reject<string, bool>("error");



var result = ContinuationModule
                .All(continuation1, continuation2)
                .Then(values => $"{values.Item2} is {values.Item1}")

//result.IsFail= true
//result.Fail= (
//    Option.IsNone = true,
//    Option.IsNone = true,
//    Option.IsSome = true | Option.Some = "error"
//)

Last updated