/// <inheritdoc/> public async Task <AddAssignmentResult> AddAssignmentAsync(AddAssignmentRequest model) { IEnumerable <ValidationMessage> validationMessages = _assignmentValidator.ValidateRules(model); if (validationMessages.Any()) { return(new AddAssignmentResult(validationMessages)); } var test = await _testRepository.GetAsync(model.TestId); if (test == null) { return(new AddAssignmentResult(new ValidationMessage(nameof(model.TestId), "No test was found"))); } var assignment = new Assignment(model.NumberOfQuestions); test.AddAssignment(assignment); ValidationMessage result = await _testRepository.UpdateAsync(test); if (result != null) { return(new AddAssignmentResult(result)); } return(new AddAssignmentResult(test.Id, assignment.Id)); }
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 AddBonusAssignmentFlowAsync(Guid testId) { bool isBonusAssignmentNeeded = SharedConsoleFlows.AskForBool($"Is there a bonus question?"); if (isBonusAssignmentNeeded) { var addAssignmentRequest = new AddAssignmentRequest { TestId = testId, NumberOfQuestions = 1 }; AddAssignmentResult addAssignmentResult = await _testController.AddAssignmentAsync(addAssignmentRequest); if (addAssignmentResult.ValidationMessages.Any()) { SharedConsoleFlows.PrintValidationMessages(addAssignmentResult.ValidationMessages); } } }
public Task <IActionResult> AddAssignment([FromBody] AddAssignmentRequest request) { return(this.HandleRequest <AddAssignmentRequest, AddAssignmentResponse>(request)); }