/// <summary> /// Updates task result. /// </summary> /// <param name="currentTaskResult">A candidates' current result.</param> /// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns> public Task UpdateCandidateTaskResultAsync(CandidateTaskResult currentTaskResult) { if (currentTaskResult == null) { throw new ArgumentNullException(nameof(currentTaskResult)); } CandidateTaskResult previousResult = _context.CandidateTaskResults.FirstOrDefault(result => result.ModifierId == currentTaskResult.ModifierId && result.CandidateExerciseId == currentTaskResult.CandidateExerciseId); if (previousResult == null) { return(SaveCandidateTaskResultAsync(currentTaskResult)); } UpdateResult(previousResult, currentTaskResult); return(_context.SaveChangesAsync()); }
/// <summary> /// Removes a task result by id. /// </summary> /// <param name="id">An id of a task result.</param> /// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns> public Task RemoveTaskResultAsync(int id) { VerifyId(id); var temp = _context.CandidateTaskResults.FirstOrDefault(cr => cr.Id == id); if (temp == null) { throw new TaskResultNotFoundException(); } _context.CandidateTaskResults.Remove( Mapper.Map <CandidateTaskResult>(temp)); return(_context.SaveChangesAsync()); }
public async Task <int> AddCandidateTaskAsync(CandidateTaskInfo candidateTaskInfo) { if (candidateTaskInfo == null) { throw new ArgumentNullException(nameof(candidateTaskInfo)); } var candidateTask = CreateCandidateTask(candidateTaskInfo); _exerciseContext.CandidateTasks.Add(candidateTask); await _exerciseContext.SaveChangesAsync().ConfigureAwait(false); return(candidateTask.Id); }