public ResultMessage SetExamQuestion(ExamQuestion request)
        {
            ExamQuestionHelper eqh    = new ExamQuestionHelper();
            QuestionHelper     qh     = new QuestionHelper();
            QuestionItemHelper qih    = new QuestionItemHelper();
            ResultMessage      result = new ResultMessage();

            result = eqh.Create(request.ExamPaper, request.Byname, request.TotalFullScore, request.LimitTime, request.OwnerType);
            if (!result.State)
            {
                return(result);
            }
            foreach (var q in request.Questions)
            {
                var q_guid = Guid.NewGuid().ToString();
                result = qh.Create(q_guid, request.ExamPaper, q.Code, q.QuestionType, q.QuestionContent, q.FullScore, q.Comment);
                if (!result.State)
                {
                    return(result);
                }

                if (q.Items == null || q.Items.Count == 0)
                {
                    continue;
                }
                foreach (var qi in q.Items)
                {
                    if (string.IsNullOrWhiteSpace(qi.ItemOrder))
                    {
                        continue;
                    }

                    foreach (var qia in q.Answers)
                    {
                        if (qi.ItemOrder == qia.ItemOrder)
                        {
                            qi.Value       = qia.Value;
                            qi.ExpandValue = qia.ExpandValue;
                            break;
                        }
                    }
                    result = qih.Create(Guid.NewGuid().ToString(), q_guid, qi.ItemOrder, qi.ItemAnswer, qi.Value, qi.ExpandValue, qi.IsWrite);
                    if (!result.State)
                    {
                        return(result);
                    }
                }
            }
            return(result);
        }
        public ExamQuestion GetExamQuestion(RequestGetExamQuestion request)
        {
            ExamQuestionHelper eqh = new ExamQuestionHelper();
            ExamQuestion       eq  = eqh.GetRow(request.ExamPaper);

            QuestionHelper qh = new QuestionHelper();

            eq.Questions = qh.GetRows(request.ExamPaper);

            QuestionItemHelper qih = new QuestionItemHelper();
            var qis = qih.GetRows(request.ExamPaper);

            Dictionary <string, IList <QuestionItem> > items   = new Dictionary <string, IList <QuestionItem> >();
            Dictionary <string, IList <QuestionItem> > answers = new Dictionary <string, IList <QuestionItem> >();

            foreach (var qi in qis)
            {
                if (!items.ContainsKey(qi.Code))
                {
                    items.Add(qi.Code, new List <QuestionItem>());
                }
                if (!answers.ContainsKey(qi.Code))
                {
                    answers.Add(qi.Code, new List <QuestionItem>());
                }
                items[qi.Code].Add(qi);
                if (!string.IsNullOrWhiteSpace(qi.Value))
                {
                    answers[qi.Code].Add(qi);
                }
            }

            foreach (var q in eq.Questions)
            {
                q.Items   = items[q.Code];
                q.Answers = answers[q.Code];
            }

            return(eq);
        }