public async Task <List <Tuple <string, string> > > GenerateThisTest(TestParams testparams) { _generatedQnA = new List <Tuple <string, string> >(); var mod = GetTestModifier(testparams); var count = 0; while (count < testparams.Questions) { Task <string> taskA = Task.Run(() => ShuffleMeAnOperationSon(mod, testparams.Difficulty) ); // Execute the continuation when the antecedent finishes. Tuple <string, string> taskB = await taskA.ContinueWith(queuedTask => { var operation = taskA.Result; Expression shnarfy = new Expression(operation); return(new Tuple <string, string>(operation, $"{shnarfy.calculate()}")); }); _generatedQnA.Add(new Tuple <string, string>(taskB.Item1, taskB.Item2)); count++; } return(_generatedQnA); }
private Modifier GetTestModifier(TestParams testParams) { switch (testParams.Grade) { case EGrades.One: return(new LevelOne().Modifier); case EGrades.Two: return(new LevelTwo().Modifier); case EGrades.Three: return(new LevelThree().Modifier); case EGrades.Four: return(new LevelFour().Modifier); default: return(new LevelOne().Modifier); } }