public LogicResult <MultipleChoicesAnswer> CreateMultipleChoicesAnswer(MultipleChoicesAnswer multipleChoicesAnswer) { try { if (multipleChoicesAnswer is null) { return(new LogicResult <MultipleChoicesAnswer> { IsSuccess = false, Errors = new List <string> { "Annotation can not be empty." } }); } _unitOfWork.MultipleChoicesAnswerRepository.AddAsync(multipleChoicesAnswer); _unitOfWork.SaveChangesAsync(); return(new LogicResult <MultipleChoicesAnswer> { IsSuccess = true, Data = multipleChoicesAnswer }); } catch (Exception ex) { return(new LogicResult <MultipleChoicesAnswer> { IsSuccess = false, Errors = new List <string> { "Unable to save changes.", ex.Message } }); } }
public async Task <MultipleChoicesAnswer> AddAsync(MultipleChoicesAnswer entity) { await _unitOfWork.MultipleChoicesAnswerRepository.AddAsync(entity); await _unitOfWork.SaveChangesAsync(); return(entity); }
public async Task <IActionResult> CreateMultipleChoicesAnswer([FromBody] MultipleChoicesAnswerModel model) { var newMultipleChoicesAnswer = new MultipleChoicesAnswer(); try { if (!ModelState.IsValid) { ValidModel(); } //check if this question has been done yet var existingMultipleChoicesAnswer = await _service.MultipleChoicesAnswerService.CheckExistingBasedOnAnswerIdAndExerciseId(model.AnswerId, model.MultipleChoicesExerciseId); if (existingMultipleChoicesAnswer == true) { return(ErrorResult("You has already done this question.")); } //check if multiple choices answer is existing var multipleChoicesExercise = await _service.MultipleChoicesExerciseService.GetByIdAsync(model.MultipleChoicesExerciseId); if (multipleChoicesExercise == null) { return(ErrorResult($"The Exercise with Id :{model.MultipleChoicesExerciseId} does not exist.")); } newMultipleChoicesAnswer = new MultipleChoicesAnswer() { AnswerId = model.AnswerId, MultipleChoicesExerciseId = model.MultipleChoicesExerciseId, Result = model.Result }; await _service.MultipleChoicesAnswerService.AddAsync(newMultipleChoicesAnswer); } catch (Exception e) { return(ErrorResult(e.Message)); } return(SuccessResult(newMultipleChoicesAnswer, "Created Multiple Choices Answer successfully.")); }
public async Task <IActionResult> CreateAnswerContainer([FromBody] AnswerContainerModel model) { var newAnswer = new Answer(); try { if (!ModelState.IsValid) { ValidModel(); } //check if isExisting ->studentId match TestId var existingAnswer = await _service.AnswerService.CheckExistingBasedOnTestId(model.StudentId, model.TestId); if (existingAnswer == true) { return(ErrorResult("You has already done this test.")); } int score = 0; //check answer is right foreach (var multipleChoicesAnswer in model.MultipleChoicesAnswerModels) { //get right result var result = await _service.MultipleChoicesExerciseService.GetByIdAsync(multipleChoicesAnswer.MultipleChoicesExerciseId); //compare result if (multipleChoicesAnswer.Result.ToString() == result.RightResult.ToString()) { multipleChoicesAnswer.IsBingo = true; //update result score++; } else { multipleChoicesAnswer.IsBingo = false; } } //else -> add answer newAnswer = new Answer() { StudentId = model.StudentId, TestId = model.TestId, Score = model.Score }; await _service.AnswerService.AddAsync(newAnswer); //add new multiple answer foreach (var multipleChoicesAnswer in model.MultipleChoicesAnswerModels) { var newMultitpleChoicesAnswer = new MultipleChoicesAnswer() { AnswerId = multipleChoicesAnswer.AnswerId, IsBingo = multipleChoicesAnswer.IsBingo, Result = multipleChoicesAnswer.Result, MultipleChoicesExerciseId = multipleChoicesAnswer.MultipleChoicesExerciseId }; await _service.MultipleChoicesAnswerService.AddAsync(newMultitpleChoicesAnswer); //add log var multipleChoicesLog = new Log() { Status = true, Action = "Add Multiple Choices Answer id : " + newMultitpleChoicesAnswer.Id.ToString() + " complete at " + newMultitpleChoicesAnswer.CreatedOnUtc.ToString() }; await _service.LogService.AddAsync(multipleChoicesLog); } //add new essay answer foreach (var essayAnswer in model.EssayAnswerModels) { var newEssayAnswer = new EssayAnswer() { AnswerId = essayAnswer.AnswerId, IsBingo = false, Result = essayAnswer.Result, EssayExerciseId = essayAnswer.EssayExerciseId }; await _service.EssayAnswerService.AddAsync(newEssayAnswer); //add log var essayLog = new Log() { Status = true, Action = "Add Essay Answer id : " + newEssayAnswer.Id + " complete at " + newEssayAnswer.CreatedOnUtc }; await _service.LogService.AddAsync(essayLog); } var newLog = new Log() { Status = true, Action = "Add Answer id : " + newAnswer.Id + " complete at " + newAnswer.CreatedOnUtc }; await _service.LogService.AddAsync(newLog); } catch (Exception e) { return(ErrorResult(e.Message)); } return(SuccessResult(newAnswer, "Created Answer successfully.")); }