Beispiel #1
0
        /// <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());
        }
Beispiel #3
0
        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);
        }