Ejemplo n.º 1
0
 /// <summary>
 ///     Creates a new Composer, which can be used to compose a task chain, which can be added to an
 ///     existing composer as a single task. Note that this executes on the task chain, and not immediately.
 /// </summary>
 /// <typeparam name="T">The payload type</typeparam>
 /// <param name="compensation">The compensation</param>
 /// <param name="callback"></param>
 /// <returns></returns>
 public static CompensationResult <T> ComposeTask <T>(this Compensation <T> compensation, Action <Composer> callback)
 {
     return(compensation.Task(ComposeCompensationTask(compensation.Payload, callback, compensation.CancellationToken)));
 }
Ejemplo n.º 2
0
 CompensationResult Compensation.Task(Task task)
 {
     return(new CompensationResultProxy <T>(_compensation.Task(task
                                                               .ContinueWith(_ => _compensation.Payload, TaskContinuationOptions.ExecuteSynchronously))));
 }
Ejemplo n.º 3
0
 /// <summary>
 ///     Creates a new Composer, which can be used to compose a task chain, which can be added to an
 ///     existing composer as a single task. Note that this executes on the task chain, and not immediately.
 /// </summary>
 /// <param name="compensation"></param>
 /// <param name="callback"></param>
 /// <returns></returns>
 public static CompensationResult ComposeTask(this Compensation compensation, Action <Composer> callback)
 {
     return(compensation.Task(ComposerFactory.Compose(callback, compensation.CancellationToken)));
 }