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
.
Parâmetros | Retorno |
---|---|
Continuation<TFail1, TSuccess1> continuation1 Continuation<TFail2, TSuccess2> continuation2 |
Continuation<( Option<TFail1>, Option<TFail2>), (TSuccess1, TSuccess2)> |
Continuation<TFail1, TSuccess1> continuation1 Continuation<TFail2, TSuccess2> continuation2 Continuation<TFail3, TSuccess3> continuation3 |
Continuation<( Option<TFail1>, Option<TFail2>, Option<TFail3>), (TSuccess1, TSuccess2, TSuccess3)> |
Continuation<TFail1, TSuccess1> continuation1 Continuation<TFail2, TSuccess2> continuation2 Continuation<TFail3, TSuccess3> continuation3 Continuation<TFail4, TSuccess4> continuation4 |
Continuation<( Option<TFail1>, Option<TFail2>, Option<TFail3>, Option<TFail4>), (TSuccess1, TSuccess2, TSuccess3,TSuccess4)> |
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"
//)