public ExamAnswer GetExamAnswer(RequestGetExamAnswer request)
        {
            ExamAnswerHelper eah = new ExamAnswerHelper();
            ExamAnswer ea = eah.GetRow(request.usercode, request.ExamPaper);

            AnswerHelper ah = new AnswerHelper();
            ea.Answers = ah.GetRows(ea.GUID);

            AnswerItemHelper aih = new AnswerItemHelper();
            var ais = aih.GetRows(ea.GUID);

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

            foreach (var ai in ais)
            {
                if (!items.ContainsKey(ai.Code))
                {
                    items.Add(ai.Code, new List<AnswerItem>());
                }
                 items[ai.Code].Add(ai);
            }

            foreach (var a in ea.Answers)
            {
                a.Answers = items[a.Code];
            }

            return ea;
        }
        public ResultMessage SetExamAnswer(ExamAnswer request)
        {
            ExamAnswerHelper eah = new ExamAnswerHelper();
            ResultMessage result = eah.Create(request.GUID = Guid.NewGuid().ToString(), request.ExamPaper, request.UserCode, request.ClientIP, request.LeftTime, request.RightTime, request.TotalScore);
            if (!result.State) return result;

            AnswerHelper ah = new AnswerHelper();
            AnswerItemHelper aih = new AnswerItemHelper();
            if (request.Answers == null || request.Answers.Count == 0) return result;
            foreach(var a in request.Answers)
            {
                result = ah.Create(a.GUID = Guid.NewGuid().ToString(), a.Ref_ExamAnswer_GUID = request.GUID, a.Code, a.Score, a.Comment);
               if (!result.State) return result;

               if (a.Answers == null || a.Answers.Count==0) continue;
               foreach (var ai in a.Answers)
               {
                   if (string.IsNullOrWhiteSpace(ai.ItemOrder)) continue;
                   result = aih.Create(ai.GUID = Guid.NewGuid().ToString(), ai.Answer_GUID = a.GUID, ai.ItemOrder, ai.Value, ai.ExpandValue);
                   if (!result.State) return result;
               }
            }
            return result;
        }