public static async System.Threading.Tasks.Task <R> MatchAsync <R>(this IAddQuestionResult self, System.Func <QuestionPosted, System.Threading.Tasks.Task <R> > whenQuestionPosted, System.Func <QuestionRejected, System.Threading.Tasks.Task <R> > whenQuestionRejected, System.Func <QuestionValidationFailed, System.Threading.Tasks.Task <R> > whenQuestionValidationFailed) { switch ((self)) { case QuestionPosted questionposted: return(await whenQuestionPosted(questionposted)); case QuestionRejected questionrejected: return(await whenQuestionRejected(questionrejected)); case QuestionValidationFailed questionvalidationfailed: return(await whenQuestionValidationFailed(questionvalidationfailed)); default: throw new System.NotSupportedException("This switch statement should be exhaustive"); } }
public static IAddQuestionResult Match(this IAddQuestionResult self, System.Func <QuestionPosted, IAddQuestionResult> whenQuestionPosted, System.Func <QuestionRejected, IAddQuestionResult> whenQuestionRejected, System.Func <QuestionValidationFailed, IAddQuestionResult> whenQuestionValidationFailed) { switch ((self)) { case QuestionPosted questionposted: return(whenQuestionPosted(questionposted)); case QuestionRejected questionrejected: return(whenQuestionRejected(questionrejected)); case QuestionValidationFailed questionvalidationfailed: return(whenQuestionValidationFailed(questionvalidationfailed)); default: throw new System.NotSupportedException("This switch statement should be exhaustive"); } }