Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
            }
        }