private async Task RunFinalValidation()
 {
     if (FinalValidation.IsNullOrDefault())
     {
         await OnOutcomeChanged.Invoke(this, NextState, CancelState).WithoutChangingContext();
     }
     else
     {
         await FinalValidation.Invoke(this).WithoutChangingContext();
     }
 }
        public async Task SetOutcome(Outcomes outcome)
        {
            Outcome = outcome;

            await OnOutcomeChanged.Invoke(this, NextState, CancelState).WithoutChangingContext();
        }