97
IdTest = idTest,
AttemptNumber = userTests.Count() + 1,
StartDate = DateTime.Now,
EndDate = null
};
await storage.GetRepository<UserTest>().Create(userTest);
transaction.Commit();
return userTest.Id;
}
catch (Exception ex)
{
transaction.Rollback();
throw new Exception(ex.Message);
}
}
}
return userTests.Where(item => item.EndDate ==
null).OrderByDescending(item => item.Id).FirstOrDefault().Id;
}
public async Task<QuestionAnswerDTO> GetRunTestQuestion(int idUserTest)
{
IEnumerable<UserQuestion> userQuestions = await
storage.GetRepository<UserQuestion>().Get(item =>
item.IdUserTest == idUserTest);
IEnumerable<UserQuestion> userQuestionsNotAnswer =
userQuestions.Where(item => item.Result == null);
if(userQuestionsNotAnswer.Count() != 0)
{
UserQuestion userQuestionNotAnswer =
userQuestionsNotAnswer.FirstOrDefault();
return await
GetQuestionAnswerByIdUserQuestion(userQuestionNotAnswer.Id);
}
List<Question> availableQuestions = await
storage.MixedRepository.GetAvailableQuestionsByIdUserTest(idUserTest);
UserTest userTest = await
storage.GetRepository<UserTest>().FindById(idUserTest);
Test test = await storage.GetRepository<Test>().FindById(userTest.IdTest);