Exemple #1
0
        public Task UpdateAsync(TaskAnswerDTO answerDto)
        {
            if (answerDto == null)
            {
                throw new ArgumentNullException(nameof(answerDto));
            }

            var newAnswer = mapper.Map <TaskAnswerDTO, Entities.TaskAnswer>(answerDto);

            if (unitOfWork.Answers.Get(newAnswer.Id) is Entities.TaskAnswer oldAnswer)
            {
                if (oldAnswer.TaskId == newAnswer.TaskId &&
                    oldAnswer.TestSessionUser.Equals(newAnswer.TestSessionUser) &&
                    oldAnswer.Content == newAnswer.Content)
                {
                    return(Task.CompletedTask);
                }
                if (oldAnswer.TaskId != newAnswer.TaskId ||
                    !oldAnswer.TestSessionUser.Equals(newAnswer.TestSessionUser))
                {
                    unitOfWork.Answers.Create(newAnswer);
                }
                else
                {
                    unitOfWork.Answers.Update(oldAnswer);
                }
            }
            else
            {
                unitOfWork.Answers.Create(newAnswer);
            }
            return(unitOfWork.SaveAsync());
        }
Exemple #2
0
        public Task CreateAsync(TaskAnswerDTO answer)
        {
            if (answer == null)
            {
                throw new ArgumentNullException(nameof(answer));
            }
            if (answer.Content == null)
            {
                throw new ArgumentException($"{nameof(Entities.TaskAnswer)}.{nameof(Entities.TaskAnswer.Content)} cannot be null");
            }

            var entry = mapper.Map <TaskAnswerDTO, Entities.TaskAnswer>(answer);

            unitOfWork.Answers.Create(entry);

            return(unitOfWork.SaveAsync());
        }