public async Task CreateAsync(Guid id, string name, string description, DateTime startDate, DateTime endDate) { var exam = await _examRepository.GetAsync(name); if (exam != null) { throw new Exception($"Exam named: '{name}' already exists."); } exam = new Exam(id, name, description, startDate, endDate); await _examRepository.AddAsync(exam); }
public async Task <ActionServiceResult> GetByUserID(string userID, string contestID, string roleName) { var result = new ActionServiceResult(); var response = _examRepo.GetExamByContestID(contestID); switch (roleName) { case "lecture": result.Data = response; return(result); case "student": var exam = response.Where(item => item.UserId.ToString().Trim() == userID.Trim()).FirstOrDefault(); if (exam == null) { var examRes = await CreateExam(contestID, userID); await _examRepo.AddAsync(examRes); var examDTO = new ExamDTO(); examDTO = _mapper.Map <ExamDTO>(examRes); examDTO.Question = JsonConvert.DeserializeObject <List <QuestionDescription> >(examRes.Question); return(new ActionServiceResult(true, Resources.Success, Code.Success, examDTO, 0)); } else { exam.ModifiedDate = DateTime.Now; result.Data = exam; await _examRepo.Update(exam); return(result); } default: break; } return(result); }