public Result Edit(int id, QuizAnswerEditAdminDto dto)
        {
            dto.Id = id;
            var result = _validatorEdit.ValidateResult(dto);

            if (!result.Success)
            {
                return(result);
            }

            if (dto.Id > 0)
            {
                var entity = _quizAnswerRepository.AsNoTracking.FirstOrDefault(w => w.Id == dto.Id);

                if (entity == null)
                {
                    return(result.SetError("There are error for update record. Please try again with refresh."));
                }
                var query = _quizAnswerRepository.AsNoTracking.Where(x => x.QuizQuestionId == entity.QuizQuestionId);

                if (dto.IsCorrectAnswer)
                {
                    query.Update(u => new QuizAnswer {
                        IsCorrectAnswer = false
                    });
                }

                Mapper.Map <QuizAnswer>(dto, entity);
                _quizAnswerRepository.Update(entity);
                _unitOfWork.Commit();

                result.Id = entity.Id;
            }
            else
            {
                var entity = Mapper.Map <QuizAnswer>(dto);
                _quizAnswerRepository.Insert(entity);
                _unitOfWork.Commit();

                result.Id = entity.Id;
            }

            QuizAnswerCacheManager.ClearCache();

            return(result.SetSuccess(Messages.RecordSaved));
        }
Ejemplo n.º 2
0
 public IHttpActionResult Put(int id, [FromBody] QuizAnswerEditAdminDto dto)
 {
     return(Result(_quizAnswerAdminService.Edit(id, dto)));
 }