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); }