コード例 #1
0
ファイル: QuestionServer.cs プロジェクト: yqNathan/XCXService
        /// <summary>
        /// 修改题目
        /// </summary>
        /// <param name="Question">题目对象</param>
        /// <returns></returns>
        public bool UpdateQuestion(QuestionDTO questionDTO)
        {
            using (var transaction = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions {
                IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted
            }))
            {
                try
                {
                    using (var db = base.GDDSVSPDb)
                    {
                        Question question = db.Question.SingleOrDefault(p => p.QuestionID == questionDTO.QuestionID);
                        question.QuestionnaireTypeID = questionDTO.QuestionnaireTypeID;
                        question.QuestionWarehouseID = questionDTO.QuestionWarehouseID;
                        question.QuestionTitle       = questionDTO.QuestionTitle;
                        question.QuestionNumber      = questionDTO.QuestionNumber;
                        question.QuestionTypeID      = questionDTO.QuestionTypeID;
                        question.OptionTypeID        = questionDTO.OptionTypeID;
                        question.MaxOptionNumber     = questionDTO.MaxOptionNumber;
                        question.MinOptionNumber     = questionDTO.MinOptionNumber;
                        question.IsAnswer            = questionDTO.IsAnswer;
                        question.QuestionState       = questionDTO.QuestionState;
                        db.SaveChanges();

                        var delList = db.QuestionOptionMapping.Where(p => p.QuestionID == questionDTO.QuestionID);
                        db.QuestionOptionMapping.RemoveRange(delList);
                        db.SaveChanges();

                        List <QuestionOptionMapping> questionOptionMappings = new List <QuestionOptionMapping>();
                        for (int i = 0; i < questionDTO.Options.Count; i++)
                        {
                            QuestionOptionMapping obj = new QuestionOptionMapping();
                            obj.QuestionOptionID    = Guid.NewGuid();
                            obj.QuestionID          = questionDTO.QuestionID;
                            obj.QuestionWarehouseID = questionDTO.QuestionWarehouseID;
                            obj.OptionID            = questionDTO.Options[i].OptionID;
                            questionOptionMappings.Add(obj);
                        }
                        db.QuestionOptionMapping.AddRange(questionOptionMappings);
                        db.SaveChanges();
                        transaction.Complete();
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return(true);
        }
コード例 #2
0
ファイル: QuestionServer.cs プロジェクト: yqNathan/XCXService
        /// <summary>
        /// 添加题目
        /// </summary>
        /// <param name="questionDTO">题目对象</param>
        /// <returns></returns>
        public bool InsertQuestion(QuestionDTO questionDTO)
        {
            using (var transaction = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions {
                IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted
            }))
            {
                try
                {
                    using (var db = base.GDDSVSPDb)
                    {
                        Guid     questionID = Guid.NewGuid();
                        Question question   = Mapper.Map <Question>(questionDTO);
                        question.QuestionID = questionID;
                        db.Question.Add(question);
                        db.SaveChanges();

                        List <QuestionOptionMapping> questionOptionMappings = new List <QuestionOptionMapping>();
                        for (int i = 0; i < questionDTO.Options.Count; i++)
                        {
                            QuestionOptionMapping obj = new QuestionOptionMapping();
                            obj.QuestionOptionID    = Guid.NewGuid();
                            obj.QuestionWarehouseID = questionDTO.QuestionWarehouseID;
                            obj.QuestionID          = questionID;
                            obj.OptionID            = questionDTO.Options[i].OptionID;
                            questionOptionMappings.Add(obj);
                        }
                        db.QuestionOptionMapping.AddRange(questionOptionMappings);
                        db.SaveChanges();

                        transaction.Complete();
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return(true);
        }