Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
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);
            }
        }
Exemplo n.º 3
0
        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);
                }
            }
        }
Exemplo n.º 4
0
 public Task <IActionResult> AddAssignment([FromBody] AddAssignmentRequest request)
 {
     return(this.HandleRequest <AddAssignmentRequest, AddAssignmentResponse>(request));
 }