public async Task <ApiResultCode> SubmitTestAsync(SubmitTestCommand command) { if (_unit.Context.Tblusersubmitedanswer.Any(t => t.UserId == command.UserId && t.TestId == command.TestId && t.IsMatched.HasValue)) { return(new ApiResultCode(ApiResultType.Error, messageText: "You have already done this test.")); } List <Tblusersubmitedanswer> tblusersubmitedanswers = new List <Tblusersubmitedanswer>(); Tblusersubmitedanswer answer = null; var count = command.QuestionsCommand.Where(t => t.OptionsCommand.Count > 0).FirstOrDefault(); if (count == null) { return(new ApiResultCode(ApiResultType.Error, messageText: "You have not attempted any questions. Please try again.")); } foreach (var item in command.QuestionsCommand) { var options = item.OptionsCommand.Where(t => t.IsMatched == true).ToList(); foreach (var option in options) { answer = new Tblusersubmitedanswer(); answer.Id = option.SubmitedAnswerId; answer.IsMatched = 1; answer.LastUpdateDate = DateTime.Now; answer.Status = 1; _unit.Context.Tblusersubmitedanswer.Attach(answer); _unit.Context.Entry(answer).Property(t => t.IsMatched).IsModified = true; _unit.Context.Entry(answer).Property(t => t.LastUpdateDate).IsModified = true; _unit.Context.Entry(answer).Property(t => t.Status).IsModified = true; } } var result = await _unit.SaveChangesAsync(); if (result.ResultType == ApiResultType.Success) { return(new ApiResultCode(ApiResultType.Success, messageText: "Added")); } return(new ApiResultCode(ApiResultType.Error, messageText: "Error")); }
public async Task <IActionResult> SubmitTestAsync([FromForm] SubmitTestCommand command) { var result = await _mediator.Send(command); return(result); }
public async Task <IActionResult> SubmitTest(String student_id, String test_id, SubmitTestCommand submitTestCommand) { var result = await _commandProcessor.Execute(submitTestCommand, _httpContext); return(Ok(result)); }