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); }
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(); } }
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); } }
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); }
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); }