Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }