示例#1
0
        private async Task <Guid> CreateTestFlowAsync()
        {
            string testName              = SharedConsoleFlows.AskForString("What is the name of the test?");
            byte   numberOfVersions      = SharedConsoleFlows.AskForByte("How many versions are there?");
            byte   minimumGrade          = SharedConsoleFlows.AskForByte("What is the minimum grade?");
            byte   standardizationFactor = SharedConsoleFlows.AskForByte("What is the standardization factor?");

            var createTestRequest = new CreateTestRequest()
            {
                Name                  = testName,
                MinimumGrade          = minimumGrade,
                StandardizationFactor = standardizationFactor,
                NumberOfVersions      = numberOfVersions
            };
            CreateTestResult createTestResponse = await _testController.CreateTestAsync(createTestRequest);

            Guid testId = createTestResponse.TestId;

            if (createTestResponse.ValidationMessages.Any())
            {
                SharedConsoleFlows.PrintValidationMessages(createTestResponse.ValidationMessages);
                testId = await CreateTestFlowAsync();
            }
            return(testId);
        }
示例#2
0
        private async Task AddAssignmentsFlowAsync(Guid testId)
        {
            byte numberOfAssignments = SharedConsoleFlows.AskForByte("How many normal assignments are there?");

            for (int assignmentIndex = 0; assignmentIndex < numberOfAssignments; assignmentIndex++)
            {
                await AddAssignmentFlowAsync(testId, assignmentIndex);
            }
        }
        private async Task CreateClassFromFile(IFileInfoWrapper[] files)
        {
            byte             chosenIndex = SharedConsoleFlows.AskForByte("What file should be used?");
            IFileInfoWrapper chosenFile  = await GetFile(files, chosenIndex);

            var request = new CreateMagisterClassRequest
            {
                MagisterFileLocation = chosenFile.FullName
            };
            CreateMagisterClassResult createMagisterClassResponse = await _classController.CreateMagisterClassAsync(request);

            if (createMagisterClassResponse.ValidationMessages.Any())
            {
                SharedConsoleFlows.PrintValidationMessages(createMagisterClassResponse.ValidationMessages);
                await StartAsync();
            }
        }
示例#4
0
        private async Task AddAssignmentFlowAsync(Guid testId, int assignmentIndex)
        {
            byte numberOfQuestions = SharedConsoleFlows.AskForByte($"How many questions are there for assignment: {assignmentIndex + 1}?");

            var addAssignmentRequest = new AddAssignmentRequest
            {
                TestId            = testId,
                NumberOfQuestions = numberOfQuestions
            };

            AddAssignmentResult addAssignmentResult = await _testController.AddAssignmentAsync(addAssignmentRequest);

            if (addAssignmentResult.ValidationMessages.Any())
            {
                SharedConsoleFlows.PrintValidationMessages(addAssignmentResult.ValidationMessages);
                await AddAssignmentFlowAsync(testId, assignmentIndex);
            }
        }
示例#5
0
        private async Task <Cifra.Application.Models.Test.Test> AskForTestAsync()
        {
            Console.Clear();
            Console.WriteLine("The following tests exist:");
            var result = await _testController.GetTestsAsync();

            int index = 1;

            foreach (var @test in result.Tests)
            {
                Console.WriteLine($"[{index}] {test.Name.Value}");
                index++;
            }
            var chosenIndex = SharedConsoleFlows.AskForByte("Select one of the following tests, type a number");
            var chosenTest  = result.Tests.ElementAtOrDefault(chosenIndex - 1);

            if (chosenTest == null)
            {
                Console.WriteLine("Invalid choice!");
                return(await AskForTestAsync());
            }
            return(chosenTest);
        }
示例#6
0
        private async Task <Cifra.Application.Models.Class.Class> AskForClassAsync()
        {
            Console.Clear();
            Console.WriteLine("The following classes exist:");
            GetAllClassesResult result = await _classController.GetClassesAsync();

            int index = 1;

            foreach (var @class in result.Classes)
            {
                Console.WriteLine($"[{index}] {@class.Name.Value}");
                index++;
            }
            Console.WriteLine();
            var chosenIndex = SharedConsoleFlows.AskForByte("Select one of the following classes, type a number");
            var chosenClass = result.Classes.ElementAtOrDefault(chosenIndex - 1);

            if (chosenClass == null)
            {
                Console.WriteLine("Invalid choice!");
                return(await AskForClassAsync());
            }
            return(chosenClass);
        }