コード例 #1
0
        public async Task <QuestionTypeDto> Insert(QuestionTypeDto request)
        {
            var entity = AutoMapper.Mapper.Map <QuestionType>(request);

            var result = await entityRepository.InsertAsync(entity);

            return(AutoMapper.Mapper.Map <QuestionTypeDto>(result));
        }
コード例 #2
0
        public async Task <QuestionTypeDto> Update(QuestionTypeDto request)
        {
            var entity = AutoMapper.Mapper.Map <QuestionType>(request);

            request.IsDeleted = true;

            var result = await entityRepository.UpdateAsync(entity);

            return(AutoMapper.Mapper.Map <QuestionTypeDto>(result));
        }
コード例 #3
0
        public static QuestionTypeDto ToQuestionTypeDto(this QuestionType questionType)
        {
            if (questionType == null)
            {
                return(null);
            }

            var questionTypeDto = new QuestionTypeDto
            {
                Id            = questionType.Id,
                Type          = questionType.Type,
                QuestionsList = questionType.Questions.Select(x => x.ToQuestionDto()).ToList()
            };

            return(questionTypeDto);
        }
コード例 #4
0
        public async Task <bool> SaveAsync(QuestionTypeDto model)
        {
            if (model.QuestionType.Id == 0)
            {
                GetDbSet <QuestionType>().Add(model.QuestionType);
                await SaveChangesAsync();
            }
            else
            {
                Attach(model.QuestionType, EntityState.Modified);
            }

            List <int> questionChapterIdList = model.QuestionChapters.Where(o => o.Id > 0).Select(o => o.Id).ToList();

            var chapterDb = GetDbSet <QuestionChapter>();
            List <QuestionChapter> chapterList         = chapterDb.Where(o => o.QuestionTypeId == model.QuestionType.Id && !questionChapterIdList.Contains(o.Id)).ToList();
            List <int>             deleteChapterIdList = chapterList.Select(o => o.Id).ToList();

            List <Question> questionList = _Db.Questions.Where(o => o.QuestionTypeId == model.QuestionType.Id && deleteChapterIdList.Contains(o.QuestionChapterId)).ToList();

            _Db.Questions.RemoveRange(questionList);

            chapterDb.RemoveRange(chapterList);

            model.QuestionChapters.ForEach(o =>
            {
                o.QuestionTypeId = model.QuestionType.Id;
                if (o.Id > 0)
                {
                    Attach(o, EntityState.Modified);
                }
                else
                {
                    _Db.QuestionChapters.Add(o);
                }
            });
            return(await SaveChangesAsync());
        }
コード例 #5
0
        public async Task <ActionResult> Save(QuestionTypeDto model)
        {
            bool result = await _helper.SaveAsync(model);

            return(Success(result));
        }