public IActionResult Update([FromBody] ExamRequest examRequest) { Exam exam = Mapper.Map <Exam>(examRequest); Exam updated = _examManager.UpdateExam(exam); ExamResponse response = Mapper.Map <Exam, ExamResponse>(updated); return(Ok(response)); }
public IActionResult Delete(int id) { Exam deletedExam = _examManager.DeleteExam(id); if (deletedExam == null) { return(NotFound()); } ExamResponse response = Mapper.Map <Exam, ExamResponse>(deletedExam); return(Ok(response)); }
public IActionResult Get(int id) { Exam exam = _examManager.GetExam(id); if (exam == null) { return(NotFound()); } ExamResponse response = Mapper.Map <ExamResponse>(exam); return(Json(response)); }
public IActionResult Create(ExamRequest examRequest) { Exam exam = Mapper.Map <Exam>(examRequest); Exam examResult = _examManager.AddExam(exam); if (examResult == null) { return(BadRequest()); } ExamResponse response = Mapper.Map <ExamResponse>(examResult); return(Ok(response)); }
public async Task <IActionResult> AddExamAsync([FromBody] ExamRequest examRequest) { ExamResponse examResponse = new ExamResponse(); try { User user = await examRequest.GetRequestedUserAsync(_dbContext); Exam exam = examRequest.Exam; exam.Marks = 0F; exam.LecturerUserId = user.Id; if (exam.Questions != null) { foreach (Question q in exam.Questions) { if (q == null) { continue; } exam.Marks += q.Marks; } } await _dbContext.Exams.AddAsync(exam); await _dbContext.SaveChangesAsync(); examResponse.Exams = new List <Exam>() { await _dbContext.Exams .Include(e => e.LecturerUser) .Include(e => e.Questions) .SingleOrDefaultAsync(e => e.Id == exam.Id) }; examResponse.IsSuccess = true; } catch (Exception ex) { examResponse.Message = ex.Message; } return(StatusCode(examResponse.Status, examResponse)); }
public async Task <IActionResult> UpdateExamAsync([FromBody] ExamRequest examRequest) { ExamResponse examResponse = new ExamResponse(); try { User user = await examRequest.GetRequestedUserAsync(_dbContext); Exam updatedExam = examRequest.Exam; updatedExam.LecturerUserId = user.Id; Exam exam = await _dbContext.Exams .FirstOrDefaultAsync(e => e.Id == updatedExam.Id); if (exam == null) { throw new Exception("Exam not found"); } exam.Name = updatedExam.Name; exam.Description = updatedExam.Description; exam.GivenTimeSeconds = updatedExam.GivenTimeSeconds; exam.IsPublish = updatedExam.IsPublish; exam.EffectiveDateTime = updatedExam.EffectiveDateTime; exam.ExpireDateTime = updatedExam.ExpireDateTime; await _dbContext.SaveChangesAsync(); examResponse.Exams = new List <Exam>() { await _dbContext.Exams .Include(e => e.LecturerUser) .Include(e => e.Questions) .SingleOrDefaultAsync(e => e.Id == exam.Id) }; examResponse.IsSuccess = true; } catch (Exception ex) { examResponse.Message = ex.Message; } return(StatusCode(examResponse.Status, examResponse)); }
public async Task <IActionResult> GetAllExamsAsync() { ExamResponse examResponse = new ExamResponse(); try { examResponse.Exams = await _dbContext.Exams .Include(e => e.LecturerUser) .ToListAsync(); examResponse.IsSuccess = true; } catch (Exception ex) { examResponse.Message = ex.Message; } return(StatusCode(examResponse.Status, examResponse)); }
public async Task <IActionResult> GetAllPublishedExamsAsync() { ExamResponse examResponse = new ExamResponse(); try { examResponse.Exams = await _dbContext.Exams .Include(e => e.LecturerUser) .Where(e => e.IsPublish && DateTime.Now >= e.EffectiveDateTime && DateTime.Now < e.ExpireDateTime) .ToListAsync(); examResponse.IsSuccess = true; } catch (Exception ex) { examResponse.Message = ex.Message; } return(StatusCode(examResponse.Status, examResponse)); }
public async Task <IActionResult> GetExamByIdAsync(int id) { ExamResponse examResponse = new ExamResponse(); try { examResponse.Exams = new List <Exam>() { await _dbContext.Exams .Include(e => e.LecturerUser) .Include(e => e.Questions) .SingleOrDefaultAsync(e => e.Id == id) }; examResponse.IsSuccess = true; } catch (Exception ex) { examResponse.Message = ex.Message; } return(StatusCode(examResponse.Status, examResponse)); }