private QuestionInfo UpdateQuestion(QuestionInfo questionInfo)
 {
     //先加载出来数据库当前这个问题的数据
     //保存原有的答案
     //对比现在的答案得到已删除的答案
     //更新问题数据
     DbModel.QuestionInfo question = InternalLoad(questionInfo.Id);
     question.QuestionName  = questionInfo.Name;
     question.QuestionScore = questionInfo.QuestionScore;
     question.QuestionType  = (DbModel.QuestionType)questionInfo.QuestionType;
     question = _repository.Save(question);
     //保存问题答案
     if (questionInfo.Solutions != null && questionInfo.Solutions.Count() > 0)
     {
         IEnumerable <SolutionInfo> oldSolutions    = QuerySolutions(questionInfo.Id);
         List <SolutionInfo>        deleteSolutions = new List <SolutionInfo>();
         foreach (SolutionInfo item in oldSolutions)
         {
             SolutionInfo solution = questionInfo.Solutions.FirstOrDefault(p => p.Name.Equals(item.Name));
             if (solution == null)
             {
                 deleteSolutions.Add(item);
             }
             else
             {
                 solution.Id         = item.Id;
                 solution.RelationId = item.RelationId;
             }
         }
         SaveRelation(questionInfo);
         RemoveRelation(questionInfo, deleteSolutions);
     }
     return(questionInfo);
 }
        public QuestionInfo Load(int questionId)
        {
            DbModel.QuestionInfo question = InternalLoad(questionId);
            if (question == null)
            {
                return(null);
            }
            QuestionInfo result = new QuestionInfo();

            result.Id                = question.Id;
            result.Name              = question.QuestionName;
            result.QuestionScore     = question.QuestionScore;
            result.QuestionType      = (QuestionType)question.QuestionType;
            result.QuestionGroupName = question.QuestionGroupName;
            result.Solutions         = QuerySolutions(question.Solutions);
            return(result);
        }
 private QuestionInfo CreateQuestion(QuestionInfo questionInfo)
 {
     //创建的时候答案肯定是没有的,所以不用判断relation
     DbModel.QuestionInfo question = new DbModel.QuestionInfo();
     question.QuestionName      = questionInfo.Name;
     question.QuestionScore     = questionInfo.QuestionScore;
     question.QuestionType      = (DbModel.QuestionType)questionInfo.QuestionType;
     question.QuestionGroupName = questionInfo.QuestionGroupName;
     question.CreateUserId      = _loginUser.Id;
     question.CreateDate        = DateTime.Now;
     question        = _repository.Save(question);
     questionInfo.Id = question.Id;
     //保存答案
     if (questionInfo.Solutions != null && questionInfo.Solutions.Count() > 0)
     {
         SaveRelation(questionInfo);
     }
     return(questionInfo);
 }