public Answer(AnswerInfo info) { Id = info.Id; Text = info.Text; Image = info.Image; IsCorrect = info.IsCorrect; }
protected void CreateQuestionAnswerDialog_OkButtonClicked(object sender, EventArgs e) { if (Page.IsValid) { if (this.QuestionId > 0) { AnswerInfo entity = new AnswerInfo(); entity.QuestionId = this.QuestionId; entity.Answer = QuestionAnswerTextBox.Text; entity.Correct = CorrectCheckBox.Checked; bool result = TestController.InsertAnswer(ref entity); if (result) { CreateQuestionAnswerDialog.Reset(); DataBind(); OnQuestionAnswerCreated(EventArgs.Empty); entity = null; } } } else { ValidationHelper.SetFocusToFirstError(this.Page, "create_questionanswer"); } }
public AnswerInfo GetAnswerData(string id) { var filter = Builders <AnswerInfo> .Filter.Eq(Keys.AnswerKey, id); AnswerInfo answer = null; while (!ClientDictionaries.IsAnswer[id]) { try { var fluent = Collection.Find(filter); if (fluent.Any()) { answer = fluent.First(); RemoveAnswerAsync(answer.AnswerKey); ClientDictionaries.IsAnswer[id] = true; Core.OnLogChange(answer.AnswerKey, answer.ValueKey, false); } } catch (Exception) { if (Core.isDCClosed) { break; } } } return(answer); }
public void Method_GetAnswerData() { // arrange AnswerInfo answer = default(AnswerInfo); string id = "key"; bool isAnswer = default(bool); string name = "name"; Core.LogChange += CQG_LogChange_Mock; var answerHelper = new AnswerHelper(); UnitTestHelper.StartUp(); Task.Run(async() => { await answerHelper.ClearAnswersListAsync(); }).GetAwaiter().GetResult(); // act Task.Run(async() => { await AnswerHandler.PushAnswerAsync(new AnswerInfo(id, string.Empty, name)); answer = answerHelper.GetAnswerData(id, out isAnswer); }).GetAwaiter().GetResult(); // assert Assert.IsTrue(isAnswer); Assert.AreEqual(id, answer.AnswerKey); }
/// <summary> /// Processes Row information for answers that have two parameters to determine their value /// </summary> /// <param name="responseQuestion"></param> /// <param name="aInfo"></param> /// <returns></returns> private string ProcessRow(QuestionInfo responseQuestion, AnswerInfo aInfo) { AnswerInfo qRow = new AnswerInfo(); QuestionSubtypeEnum qaSubtype = responseQuestion.QuestionType.Subtype; // Demographic QuestionFamily types have extra spaces and newlines in front and back of their answer text if (qaSubtype == QuestionSubtypeEnum.International) { qRow = responseQuestion.QuestionAnswerList.Where(e => e.AnswerID == aInfo.Row).FirstOrDefault <AnswerInfo>(); return(qRow.Text.Trim('\n').Trim()); } else { qRow = responseQuestion.QuestionAnswerList.Where(e => e.AnswerID == aInfo.Row).FirstOrDefault <AnswerInfo>(); } // for optional comments in Matrices if (qRow != null) { return(qRow.Text); } else { return(responseQuestion.QuestionAnswerList[0].Text); } }
/// <summary> /// Processes Answer information for answers that only have one parameter to determine their value /// </summary> /// <param name="responseQuestion"></param> /// <param name="aInfo"></param> /// <returns></returns> private string ProcessAnswer(QuestionInfo responseQuestion, AnswerInfo aInfo) { AnswerInfo qi = new AnswerInfo(); QuestionSubtypeEnum qaSubtype = responseQuestion.QuestionType.Subtype; if (qaSubtype == QuestionSubtypeEnum.Menu || qaSubtype == QuestionSubtypeEnum.Vertical || qaSubtype == QuestionSubtypeEnum.Horizontal) { qi = responseQuestion.QuestionAnswerList.Where(e => e.AnswerID == aInfo.Row).FirstOrDefault <AnswerInfo>(); } if (qaSubtype == QuestionSubtypeEnum.Ranking || qaSubtype == QuestionSubtypeEnum.Rating) { qi = responseQuestion.QuestionAnswerList.Where(e => e.AnswerID == aInfo.Column).FirstOrDefault <AnswerInfo>(); } // for optional comments in Matrices if (qi != null) { return(qi.Text); } else { return(aInfo.Text); } }
public AnswerInfo GetEncryptedInfo() { AnswerInfo info = GetInfo(); info.IsCorrect = false; return(info); }
public void AddAnswer(AnswerInfo answer = null) { CtrlErrorAnswers.Visibility = Visibility.Collapsed; AnswerMinEditControl amec = new AnswerMinEditControl(CtrlIsRadio.IsChecked == true, answer); amec.MouseLeftButtonUp += CtrlAnswerCard_Click; CtrlAnswers.Children.Add(amec); }
public virtual double getScore(String ans, String testname, String num) { List <int> cli = JsonConvert.DeserializeObject <List <int> >(ans); double sc = AnswerInfo.check2(cli, testname,//读取cookie中文的值时先解码 _dbcon); _dbcon.setScore(testname, num, sc); _back = sc.ToString(); return(sc); }
/// <summary> /// 向机器人发送咨询问题 /// </summary> /// <param name="question">咨询问题</param> /// <returns>机器人的回答</returns> public string Consult(string question) { string dat = ""; HttpWebResponse res = null; HttpWebRequest req; try { req = (HttpWebRequest)WebRequest.Create(this._BaseUrl + question); req.AllowAutoRedirect = false; req.Timeout = 100000; req.Referer = null; req.Proxy = null; req.UserAgent = "Mozilla/5.0 (Windows NT 10.0;%20WOW64; rv:47.0) Gecko/20100101 Firefox/47.0"; res = (HttpWebResponse)req.GetResponse(); } catch (HttpException) { return(""); } catch (WebException) { return(""); } StreamReader reader; reader = new StreamReader(res.GetResponseStream(), Encoding.UTF8); dat = reader.ReadToEnd(); res.Close(); req.Abort(); string answer = ""; AnswerInfo info = (AnswerInfo)JsonConvert.DeserializeObject(dat, typeof(AnswerInfo)); if (info.code == "100000") { answer = "图灵机器人[" + this._APIKey + "]:" + info.text; // 每一次访问,都需要记录为最后一次成功访问时间 _lastTalkTime = DateTime.Now; } return(answer); }
public JsonResult CheckAnswer(AnswerInfo answerInfo) { Task task = data.FindTask(answerInfo.TaskId); UserProfile user = data.FindUser(WebSecurity.CurrentUserId); if (answerInfo.UserId != 0) { UserProfile author = data.FindUser(answerInfo.UserId); if (author.UserId != user.UserId) { return CheckAnswerWithoutAuthor(user, task, answerInfo); } AnswerResult result = new AnswerResult(); result.Success = false; result.Message = Messages.UserAuthor; return Json(result); } return CheckAnswerWithoutAuthor(user, task, answerInfo); }
public JsonResult CheckAnswer(AnswerInfo answerInfo) { Task task = data.FindTask(answerInfo.TaskId); UserProfile user = data.FindUser(WebSecurity.CurrentUserId); if (answerInfo.UserId != 0) { UserProfile author = data.FindUser(answerInfo.UserId); if (author.UserId != user.UserId) { return(CheckAnswerWithoutAuthor(user, task, answerInfo)); } AnswerResult result = new AnswerResult(); result.Success = false; result.Message = Messages.UserAuthor; return(Json(result)); } return(CheckAnswerWithoutAuthor(user, task, answerInfo)); }
public AnswerMinControl(AnswerInfo answer, bool?isRadio = null) { InitializeComponent(); CtrlText.Text = answer.Text; if (isRadio == true) { CtrlIsCorrectCheck.Visibility = Visibility.Collapsed; } else { CtrlIsCorrectRadio.Visibility = Visibility.Collapsed; } CtrlImage.Source = AppManager.GetBitmapImage(answer.Image); this.answer = answer; }
public void Method_PushAnswer() { // arrange string id = "key"; string name = "name"; bool isQueryTrue = default(bool); bool isQueryFalse = default(bool); var query = new QueryInfo(QueryType.SetProperty, id, string.Empty, name, null, null); var answer = new AnswerInfo(id, string.Empty, name, null, null); Core.LogChange += CQG_LogChange; var queryHelper = new QueryHelper(); var answerHelper = new AnswerHelper(); UnitTestHelper.StartUp(); Task.Run(async() => { await answerHelper.ClearAnswersListAsync(); }).GetAwaiter().GetResult(); // act Task.Run(async() => { await queryHelper.PushQueryAsync(query); isQueryTrue = await UnitTestHelper.QueryHandler.CheckQueryAsync(id); }).GetAwaiter().GetResult(); UnitTestHelper.QueryHandler.PushAnswerAndDeleteQuery(answer); Task.Run(async() => { isQueryFalse = await UnitTestHelper.QueryHandler.CheckQueryAsync(id); }).GetAwaiter().GetResult(); // assert Assert.IsTrue(isQueryTrue); Assert.IsFalse(isQueryFalse); }
public Task <bool> CheckAnswerAsync(string Id) { return(Task.Run(() => { var filter = Builders <AnswerInfo> .Filter.Eq(Keys.AnswerKey, Id); AnswerInfo result = null; try { result = Collection.Find(filter).SingleOrDefault(); } catch (Exception ex) { Core.OnLogChange(ex.Message); if (Connect()) { CheckAnswerAsync(Id); } } return (result != null); })); }
// Recursive checking DB for a ready answer while connection exists. // Getting object with answer data if there's coincidence by query id. public AnswerInfo GetAnswerData(string id, out bool isAns) { var filter = Builders <AnswerInfo> .Filter.Eq(Keys.AnswerKey, id); try { var fluent = Collection.Find(filter); AnswerInfo answer = null; if (fluent.Any()) { answer = Collection.Find(filter).First(); Core.OnLogChange(answer.AnswerKey, answer.ValueKey, false); RemoveAnswerAsync(answer.AnswerKey); isAns = true; return(answer); } else { isAns = false; return(answer); } } catch (Exception) { if (Connect()) { return(GetAnswerData(id, out isAns)); } else { Core.OnLogChange(id, "null", false); isAns = false; return(null); } } }
public static AnswerInfo WaitingForAnAnswer(string queryKey, QueryType queryType) { AnswerInfo answer = null; answer = AnswerHelper.GetAnswerData(queryKey); if (answer != null) { ClientDictionaries.IsAnswer.Remove(queryKey); // If query type of successfully extracted non empty answer tells about creation of new object, // then own dictionary of event checking must be created, filled for that object and added // to the common dictionary of current application if (queryType == QueryType.CallCtor) { ClientDictionaries.FillEventCheckingDictionary(answer.ValueKey, answer.MemberName); } } else { OnLogChange(NoAnswerMessage); } return(answer); }
private JsonResult CheckAnswerWithoutAuthor(UserProfile user, Task task, AnswerInfo answerInfo) { AnswerResult result = new AnswerResult(); if (!user.Tasks2.Contains(task)) { if (data.IsAnswerCorrect(answerInfo.TaskId, answerInfo.Answer)) { data.UserSolveTask(user, task); result.Success = true; result.Message = Messages.UserSuccess; } else { data.UserFailToSolveTask(user, task); result.Success = false; result.Message = Messages.UserFail; } return(Json(result)); } result.Success = false; result.Message = Messages.UserAlreadySolve; return(Json(result)); }
public void Update(AnswerInfo item) { throw new NotImplementedException(); }
public void Create(AnswerInfo item) { db.AnswersInfo.Add(item); }
public void Init(AnswerInfo info) { this.GetComponentInChildren <Button>().onClick.AddListener(() => { info.onClick(); }); this.GetComponentInChildren <TextMeshProUGUI>().text = info.name; }
/// <summary> /// Shows each respondent's answer to each question in a survey /// </summary> /// <param name="ResponseResultList">A list of responses from each person who responded to the survey</param> /// <param name="RespondentList">A list of respondents who answered the survey</param> /// <param name="SurveyQuestions">Contains a list of questions and a list of answers for each question/param> public void Flatten(GetResponsesResult[] ResponseResultList, RespondentInfo[] RespondentList, SurveyQuestionView SurveyQuestions) { List <ResponseWithAnswer> rwaList = new List <ResponseWithAnswer>(); foreach (GetResponsesResult response in ResponseResultList) { List <RespondentInfo> rList = RespondentList.Where(e => e.RespondentID == response.RespondentID).ToList <RespondentInfo>(); if (rList != null) { RespondentInfo respondant = rList[0]; foreach (QuestionInfo qInfo in response.QuestionList) { List <QuestionInfo> question = SurveyQuestions.QuestionList.Where(e => e.QuestionID == qInfo.QuestionID).ToList <QuestionInfo>(); QuestionInfo responseQuestion = question[0]; qInfo.QuestionType = responseQuestion.QuestionType; foreach (AnswerInfo aInfo in qInfo.QuestionAnswerList) { ResponseWithAnswer rwa = new ResponseWithAnswer(); AnswerInfo qi = new AnswerInfo(); QuestionFamilyEnum qaFamily = responseQuestion.QuestionType.Family; switch (qaFamily) { case QuestionFamilyEnum.SingleChoice: rwa.Answer = ProcessAnswer(responseQuestion, aInfo); break; case QuestionFamilyEnum.MultipleChoice: rwa.Answer = ProcessAnswer(responseQuestion, aInfo); break; case QuestionFamilyEnum.Matrix: rwa.Row = ProcessRow(responseQuestion, aInfo); rwa.Answer = ProcessAnswer(responseQuestion, aInfo); break; case QuestionFamilyEnum.OpenEnded: rwa.Answer = aInfo.Text; break; case QuestionFamilyEnum.DateTime: rwa.Row = ProcessRow(responseQuestion, aInfo); rwa.Answer = aInfo.Text; break; case QuestionFamilyEnum.Demographic: rwa.Row = ProcessRow(responseQuestion, aInfo); rwa.Answer = aInfo.Text; break; case QuestionFamilyEnum.NotSet: break; case QuestionFamilyEnum.Presentation: break; case QuestionFamilyEnum.CustomVariable: break; default: rwa.Answer = "Answer choice cannot be found in answer bank for this question"; break; } rwa.Question = responseQuestion.Heading; rwa.QuestionID = responseQuestion.QuestionID; rwa.QuestionSubtype = responseQuestion.QuestionType.Subtype; rwa.QuestionType = qaFamily; rwa.User = respondant.Email; rwa.RespondentID = respondant.RespondentID; rwa.RecipientID = respondant.RecipientID; rwaList.Add(rwa); } } } } ResponseAnswerList = rwaList; }
public AnswerMinEditControl(bool isRadio = false, AnswerInfo answer = null) { InitializeComponent(); IsRadio = isRadio; Answer = answer; }
public ActionResult SubReplContent(string code, string replyContent, string id) { //判断是否登陆 if (Session["UserName"] != null) { if (!string.IsNullOrEmpty(code) && Session["ReplyCode"].ToString() == code) { //对数据合法性进行判断 if (!string.IsNullOrEmpty(replyContent) && !string.IsNullOrEmpty(id)) { try { //新建一个数据上下文 DBContext = new WebManagementDBEntities(); int id2 = Convert.ToInt32(id); //获取论坛楼主层信息 var f1 = DBContext.ForumInfo.Where(f => f.Id == id2 && f.DelFlag == 0).FirstOrDefault(); //新建一个回复内容对象 AnswerInfo a1 = new AnswerInfo(); a1.ForumInfoId = id2; a1.Content = replyContent; a1.FromNum = Session["UserName"].ToString(); a1.FromName = Session["NickName"].ToString(); a1.FloorNumber = f1.FloorCount + 1; a1.SubDate = DateTime.Now; a1.DelFlag = 0; a1.UsefulCount = 0; a1.UselessCount = 0; //附加新建回复内容对象a1 DBContext.AnswerInfo.Attach(a1); DBContext.Entry(a1).State = System.Data.EntityState.Added; //修改楼主层的信息 f1.FloorCount += 1; DBContext.ForumInfo.Attach(f1); DBContext.Entry(f1).State = System.Data.EntityState.Modified; //执行保存 DBContext.SaveChanges(); return(Content("success")); } catch { return(RedirectToAction("../User/_404")); } } else { return(RedirectToAction("../User/_404")); } } else { return(Content("error1")); } } else { return(RedirectToAction("../Home/Login", new { referenUrl = "/Forum/Showdetail?id=" + id })); } }
/// <summary> /// GetGuidelines /// </summary> /// <param name="scorecardId"></param> /// <param name="reviewId"></param> /// <param name="listenId"></param> /// <param name="username"></param> /// <param name="reset"></param> /// <returns></returns> public dynamic GetGuidelines(int?scorecardId, int?reviewId, int?listenId, string username, int reset = 0) { using (SqlConnection sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CC_ProdConn"].ConnectionString)) { SqlCommand sqlComm = new SqlCommand("[GetGuidelineScorecardInfo]"); //sqlComm.Parameters.AddWithValue("@scorecard", callInfo.scorecadId); sqlComm.Parameters.AddWithValue("@scorecard", scorecardId); sqlComm.Parameters.AddWithValue("@callId", reviewId); sqlComm.Parameters.AddWithValue("@listenId", listenId); sqlComm.Parameters.AddWithValue("@userName", username); sqlComm.Parameters.AddWithValue("@restartID", reset); sqlComm.CommandType = CommandType.StoredProcedure; sqlComm.CommandTimeout = 41; sqlComm.Connection = sqlCon; GuidelineScorecardInfo guidelineScorecardInfo = new GuidelineScorecardInfo(); try { sqlCon.Open(); SqlDataAdapter sda = new SqlDataAdapter(sqlComm); DataSet ds = new DataSet(); sda.Fill(ds); GlScorecard scorecard = new GlScorecard(); if (ds.Tables[0].Rows.Count > 0) { DataTable dt0 = ds.Tables[0]; scorecard.scorecardName = dt0.Rows[0].Field <string>("short_name"); scorecard.scorecardApp = dt0.Rows[0].Field <string>("appname"); scorecard.scorecardId = dt0.Rows[0].Field <int>("id"); scorecard.scorecardType = dt0.Rows[0].Field <string>("review_type"); guidelineScorecardInfo.scorecardInfo = new GIScorecardInfo(); guidelineScorecardInfo.scorecardInfo.scorecard = scorecard; } if (scorecardId != scorecard.scorecardId && scorecardId != 0) { throw new InvalidOperationException(); //return BadRequest("Selected scorecard does not contain record with this ID"); } List <GlSection> sections = new List <GlSection>(); if (ds.Tables[1].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[1].Rows) { GlSection section = new GlSection(); section.questions = new List <GLQuestionInfo>(); SectionInfo sec = new SectionInfo(); sec.sectionId = dr.Field <int>("id"); sec.sectionOrder = dr.Field <int?>("section_order"); sec.sectionName = dr.Field <string>("section"); section.sectionInfo = sec; foreach (DataRow qdr in ds.Tables[2].Rows) { if (qdr.Field <int>("section") == sec.sectionId) { GLQuestionInfo qi = new GLQuestionInfo(); //FAQs List <FAQ> faqs = new List <FAQ>(); foreach (DataRow fdr in ds.Tables[5].Rows) { FAQ faq = new FAQ(); if (fdr.Field <int>("question_id") == qdr.Field <int>("id")) { faq.answerText = fdr.Field <string>("question_answer"); faq.questionText = fdr.Field <string>("question_text"); faq.wasEdited = fdr.Field <bool>("wasEdited"); faqs.Add(faq); } } qi.faqs = faqs; //Instructions List <Instruction> instructions = new List <Instruction>(); foreach (DataRow fdr in ds.Tables[6].Rows) { Instruction instruction = new Instruction(); if (fdr.Field <int>("question_id") == qdr.Field <int>("id")) { instruction.answerText = fdr.Field <string>("answer_type"); instruction.instructionText = fdr.Field <string>("question_text"); instruction.wasEdited = fdr.Field <bool>("wasEdited"); instructions.Add(instruction); } } qi.instructions = instructions; qi.useQuestion = qdr.Field <bool>("use_question"); qi.commentAllowed = qdr.Field <bool>("comments_allowed"); qi.isComposite = qdr.Field <int>("isComposite") == 1; qi.isLinked = qdr.Field <int>("isLinked") == 1; qi.isWide = qdr.Field <bool>("wide_q"); qi.dropdownType = qdr.Field <string>("ddl_type"); qi.linkedAnswerId = qdr.Field <int?>("linked_answer"); qi.linkedCommentId = qdr.Field <int?>("linked_comment"); //qi.linkedMetaData qi.linkedVisible = qdr.Field <bool>("linked_visible"); qi.questionId = qdr.Field <int>("id"); try { qi.optionVerb = (qdr.Field <string>("options_verb")).ToLower(); qi.questionType = (qdr.Field <string>("q_type")).ToLower(); } catch { } qi.qustionShortName = qdr.Field <string>("q_short_name"); if (qdr.Field <int>("isComposite") == 1) { try { CompositeQuestionInfo cqi = new CompositeQuestionInfo(); CompositeQuestionInfo answers = new CompositeQuestionInfo(); answers.answers = new List <Answer>(); foreach (DataRow adr in ds.Tables[3].Rows) { if (adr.Field <int>("question_id") == qdr.Field <int>("id")) { Answer answer = new Answer(); answer.answerId = adr.Field <int>("id"); answer.answerText = adr.Field <string>("answer_text"); answer.isRightAnswer = adr.Field <bool>("right_answer"); answer.points = adr.Field <double>("answer_points"); // if (adr.Field<string>("answer_text") == "No") { List <QuestionTemplateItem> qtis = new List <QuestionTemplateItem>(); foreach (DataRow odr in ds.Tables[7].Rows) { try { if (odr.Field <int>("question_id") == adr.Field <int>("question_id")) { QuestionTemplateItem qti = new QuestionTemplateItem(); qti.optionId = odr.Field <int>("id"); qti.optionText = odr.Field <string>("option_text"); qti.@checked = odr.Field <bool>("isChecked"); qtis.Add(qti); } } catch { } } answers.answers.Add(answer); answers.comments = (qtis); } } // qi.compositeQuestionInfo.answers } qi.compositeQuestionInfo = answers; section.questions.Add(qi); } catch (Exception ex) { } } else { SimpleQuestionInfo simpleQuestionInfo = new SimpleQuestionInfo(); List <AnswerInfo> answerInfos = new List <AnswerInfo>(); foreach (DataRow adr in ds.Tables[3].Rows) { try { AnswerInfo answerInfo = new AnswerInfo(); if (adr.Field <int>("question_id") == qdr.Field <int>("id")) { Answer answer = new Answer(); answer.answerId = adr.Field <int>("id"); answer.answerText = adr.Field <string>("answer_text"); answer.isRightAnswer = adr.Field <bool>("right_answer"); answer.points = adr.Field <double?>("answer_points"); if (reviewId == 0) { answerInfo.isAnswered = adr.Field <bool>("autoselect"); } else { answerInfo.isAnswered = adr.Field <bool>("isAnswered"); } List <GLComment> glcs = new List <GLComment>(); foreach (DataRow cdr in ds.Tables[4].Rows) { try { if (cdr.Field <int?>("answer_id") == adr.Field <int?>("id")) { GLComment glc = new GLComment(); glc.commentId = cdr.Field <int>("id"); glc.commentText = cdr.Field <string>("comment"); glc.points = cdr.Field <int?>("comment_points"); glc.@checked = cdr.Field <bool>("checked"); glcs.Add(glc); } } catch (Exception ex) { } } answerInfo.answer = answer; answerInfo.comments = glcs; answerInfos.Add(answerInfo); } //ai.commentRequired } catch (Exception ex) { } // qi.compositeQuestionInfo.answers } simpleQuestionInfo.answers = answerInfos; qi.simpleQuestionInfo = simpleQuestionInfo; section.questions.Add(qi); } } } sections.Add(section); } List <MetaDataItem> mdList = new List <MetaDataItem>(); try { for (int i = 0; i < ds.Tables[8].Columns.Count; i++) { try { mdList.Add(new MetaDataItem() { name = ds.Tables[8].Columns[i].ColumnName.ToString(), value = ds.Tables[8].Rows[0][ds.Tables[8].Columns[i].ColumnName.ToString()] }); } catch (Exception ex) { } } string audio = ""; try { if (scorecard.scorecardType != "website") { audio = new AudioHelper().GetAudioFileNameByXId(Convert.ChangeType(mdList.Where(a => a.name.ToLower() == "ID".ToLower()).Select(a => a.value).First(), typeof(int))); mdList.Where(a => a.name.ToLower() == "audio_link".ToLower()).First(a => a.value = audio); } } catch { } guidelineScorecardInfo.metaData = mdList; } catch { } try { List <SchoolDataItem> schoolDataItem = new List <SchoolDataItem>(); foreach (DataRow sdr in ds.Tables[10].Rows) { try { schoolDataItem.Add(new SchoolDataItem() { id = sdr.Field <int?>("id"), school = sdr.Field <string>("School"), AOI1 = sdr.Field <string>("AOI1"), AOI2 = sdr.Field <string>("AOI2"), Modality = sdr.Field <string>("Modality"), xccId = sdr.Field <int?>("xcc_id"), L1_SubjectName = sdr.Field <string>("L1_SubjectName"), L2_SubjectName = sdr.Field <string>("L2_SubjectName"), College = sdr.Field <string>("College"), DegreeOfInterest = sdr.Field <string>("DegreeOfInterest"), origin = sdr.Field <string>("origin"), tcpa = sdr.Field <string>("tcpa"), }); } catch (Exception ex) { } } guidelineScorecardInfo.schoolData = schoolDataItem; } catch { } try { List <OtherDataItem> otherDataItem = new List <OtherDataItem>(); foreach (DataRow sdr in ds.Tables[9].Rows) { try { otherDataItem.Add(new OtherDataItem() {//id form_id data_key data_value data_type xcc_id school_name label id = sdr.Field <int?>("id"), dataKey = sdr.Field <string>("data_key"), dataType = sdr.Field <string>("data_type"), dataValue = sdr.Field <string>("data_value"), formId = sdr.Field <int?>("form_id"), label = sdr.Field <string>("label"), schoolName = sdr.Field <string>("school_name"), xccId = sdr.Field <int?>("xcc_id"), }); } catch (Exception ex) { } } guidelineScorecardInfo.otherData = otherDataItem; List <GropDownItemModelGuidelines> temlateItems = new List <GropDownItemModelGuidelines>(); foreach (DataRow item in ds.Tables[ds.Tables.Count - 1].Rows) { try { temlateItems.Add(new GropDownItemModelGuidelines { id = item.Field <int>("id"), qID = item.Field <int>("question_id"), value = item.Field <string>("value") }); // temlateItems.Add(item.Field<string>("value")); } catch { } } List <string> results = new List <string>(); foreach (var sect in sections) { foreach (var que in sect.questions) { foreach (var ans in que.simpleQuestionInfo.answers) { ans.answer.dropdownItems = new List <string>(); foreach (var item in temlateItems) { if (item.qID == (que.questionId == null? 0 : que.questionId)) { try { results.Add(item.value); ans.answer.dropdownItems.Add(item.value); } catch (Exception ex) { throw ex; } } } } } } } catch { } guidelineScorecardInfo.scorecardInfo.sections = sections; return(guidelineScorecardInfo); } } catch (Exception ex) { throw ex; } return(guidelineScorecardInfo); } }
private JsonResult CheckAnswerWithoutAuthor(UserProfile user, Task task, AnswerInfo answerInfo) { AnswerResult result = new AnswerResult(); if (!user.Tasks2.Contains(task)) { if (data.IsAnswerCorrect(answerInfo.TaskId, answerInfo.Answer)) { data.UserSolveTask(user, task); result.Success = true; result.Message = Messages.UserSuccess; } else { data.UserFailToSolveTask(user, task); result.Success = false; result.Message = Messages.UserFail; } return Json(result); } result.Success = false; result.Message = Messages.UserAlreadySolve; return Json(result); }
/// <summary> /// 计算分数、保存记录 /// </summary> /// <param name="ansStr"></param> /// <param name="id"></param> /// <returns></returns> public string FinishExam(string ansStr, int id) { List<AnswerInfo> ans = JsonConvert.DeserializeObject<List<AnswerInfo>>(ansStr); int code; string message; try { var log = (from l in db.ES_ExamLog where l.LogId == id && l.IsStart == true && l.IsSubmit == false && l.IsDel == false select l).FirstOrDefault(); if (log == null) { code = 1; message = "获取题目失败"; return JsonConvert.SerializeObject(new { code, message }); } var scores = (from p in db.ES_ExamPaper where p.EmPaperId == log.EmPaperId && p.IsDel == false && log.IsDel == false select new { p.EmPaperSelectScore, p.EmPaperMultipleScore, p.EmPaperJudgeScore, p.EmPaperFillScore }).FirstOrDefault(); if (scores == null) { code = 1; message = "获取分数失败"; return JsonConvert.SerializeObject(new { code, message }); } List<string> exIdList = new List<string>(log.ExercisesId.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)); double singleScore = 0; double multipleScore = 0; double judgmentScore = 0; double fillScore = 0; // 获取记录中的所有题目 exIdList.ForEach(esIdStr => { int esId = Convert.ToInt32(esIdStr); // 获取该题考生的答案 AnswerInfo nowAns = null; foreach (var ansItem in ans) { if (ansItem.EsId == esId) { nowAns = ansItem; break; } } // 获取该题 var question = (from q in db.ES_Exercise where q.EsId == esId select q).FirstOrDefault(); // 判断对错,计算分数 switch (question.EsType) { case "单选题": if (nowAns.Ans[0] == "SQTrueAns") { singleScore += scores.EmPaperSelectScore; } break; case "多选题": var multiple = GetMultipleById(question.EsId); int MQId = Convert.ToInt32(multiple.GetType().GetProperty("MQId").GetValue(multiple)); var mulAns = (from ma in db.ES_MultipleAnswer where ma.MQId == MQId select ma).ToList(); if (mulAns.Count() >= nowAns.Ans.Count()) { int mulTrueNum = 0; foreach (var item in mulAns) { for (int i = 0; i < nowAns.Ans.Count(); i++) { if (item.MAContent == nowAns.Ans[i]) { mulTrueNum++; break; } } } if (mulTrueNum == mulAns.Count()) { multipleScore += scores.EmPaperMultipleScore; } else if (mulTrueNum != 0)// 如果没有全对 { multipleScore += scores.EmPaperMultipleScore / 2; } } break; case "判断题": if (nowAns.Ans[0] == "true") { judgmentScore += scores.EmPaperJudgeScore; } break; case "填空题": var fill = GetFillById(question.EsId); int fillId = Convert.ToInt32(fill.GetType().GetProperty("FQId").GetValue(fill)); var fillAns = (from fa in db.ES_FillAnswer where fa.FQId == fillId select fa).ToList(); // 判断题顺序不能错,且答案数量不会出错 int trueNum = 0; for (int i = 0; i < nowAns.Ans.Count(); i++) { if (fillAns[i].FAContent == nowAns.Ans[i]) { trueNum++; } } if (trueNum == fillAns.Count()) { fillScore += scores.EmPaperFillScore; } else if (trueNum != 0)// 如果没有全对 { fillScore += scores.EmPaperFillScore / fillAns.Count(); } break; } }); double finalScore = singleScore + multipleScore + judgmentScore + fillScore; log.Answers = ansStr; log.IsSubmit = true; log.ExamScore = finalScore; db.Entry(log).State = System.Data.Entity.EntityState.Modified; if (db.SaveChanges() > 0) { return JsonConvert.SerializeObject(new { singleScore, multipleScore, judgmentScore, fillScore, finalScore }); } code = 1; message = "考生记录保存失败"; return JsonConvert.SerializeObject(new { code, message }); } catch (Exception ex) { code = 1; message = "服务器错误!" + ex.Message; return JsonConvert.SerializeObject(new { code, message }); } }
public bool EditTo(AnswerInfo entity) { return(efCore.EditTo(entity)); }
public StorySettings GetNextStory(StorySettings settings, bool isPositiveAnswer, out bool isLose) { isLose = false; if (settings == null) { if (PlayerPrefs.HasKey("last_story_number")) { int storyNumber = PlayerPrefs.GetInt("last_story_number"); return(allStories[storyNumber]); } int index = allStories.FindIndex((val) => val == firstStory); PlayerPrefs.SetInt("last_story_number", index); return(firstStory); } AnswerInfo answerInfo = isPositiveAnswer ? settings.positiveAnswerInfo : settings.negativeAnswerInfo; isLose = answerInfo.isLose; StorySettings nextStorySettings = answerInfo.nextStorySettings; List <AddedParameterInfo> randomParaments = new List <AddedParameterInfo>(); if (Random.value < 0.7f) { randomParaments.Add(new AddedParameterInfo() { parameterType = ParameterType.Money, value = Random.Range(-1, 2) }); } if (Random.value < 0.5f) { randomParaments.Add(new AddedParameterInfo() { parameterType = ParameterType.Trust, value = Random.Range(-1, 2) }); } if (Random.value < 0.45f) { randomParaments.Add(new AddedParameterInfo() { parameterType = ParameterType.Information, value = Random.Range(-1, 2) }); } if (Random.value < 0.3f) { randomParaments.Add(new AddedParameterInfo() { parameterType = ParameterType.Personalisation, value = Random.Range(-1, 2) }); } if (nextStorySettings != null) { for (int i = 0; i < randomParaments.Count; i++) { if (!valueByType.ContainsKey(randomParaments[i].parameterType)) { valueByType.Add(randomParaments[i].parameterType, 0); } int value = valueByType[randomParaments[i].parameterType]; value = Mathf.Clamp(value + randomParaments[i].value, 0, maxValue); valueByType[randomParaments[i].parameterType] = value; PlayerPrefs.SetInt(randomParaments[i].parameterType.ToString(), value); } int index = allStories.IndexOf(nextStorySettings); if (index >= 0) { PlayerPrefs.SetInt("last_story_number", index); } } return(nextStorySettings); }
private ResultDTO CreateResult(AnswerModel answerModel) { ResultDTO result = new ResultDTO(); result.Answers = new List <AnswerInfo>(); result.Date = System.DateTime.Now.ToString(); foreach (var item in answerModel.results) { AnswerInfo answerInfo = new AnswerInfo(); answerInfo.Text_of_answer = item.Text_of_answer; answerInfo.isTrue = item.isTrue; answerInfo.QuestionId = item.QuestionId; answerInfo.ResultId = result.Id; result.Answers.Add(answerInfo); } double countTrusAnswers = 0; QuestDTO quest = questService.GetById(answerModel.idQuest); result.QuestId = answerModel.idQuest; result.UserId = userService.GetUserByEmail(User.Identity.Name).Id; if (answerModel.Type.Equals("Тест")) { foreach (var item in answerModel.results) { if (item.isTrue) { countTrusAnswers++; } } double value = (countTrusAnswers / answerModel.results.Count) * 100; result.Percente = Math.Round(value, 2); if (result.Percente >= quest.Percent_Of_Exelent) { result.Mark = 5; } else { if (result.Percente >= quest.Percent_Of_Good) { result.Mark = 4; } else { if (result.Percente >= quest.Percent_Of_Satisfactory) { result.Mark = 3; } else { result.Mark = 2; } } } } return(result); }
internal void PushAnswerAndDeleteQuery(AnswerInfo answer) { AnswerHandler.PushAnswer(answer); DeleteProcessedQuery(answer.AnswerKey); }
// Main method that contains all parts of executing the query on application side public static object ExecuteTheQuery( QueryType queryType, string dcObjType = null, string dcObjKey = null, string memName = null, object[] args = null) { if (FirstCall) { // Lazy connection to MongoDB QueryHelper = new QueryHelper(); AnswerHelper = new AnswerHelper(); EventHelper = new EventHelper(); isDCClosedChekingTimer.Interval = isDCClosedChekingInterval; isDCClosedChekingTimer.Elapsed += isDCClosedChekingTimer_Tick; isDCClosedChekingTimer.AutoReset = false; isDCClosedChekingTimer.Enabled = true; } Dictionary <int, string> argKeys; Dictionary <int, object> argVals; PutArgsFromArrayIntoTwoDicts(args, true, out argKeys, out argVals); string queryKey = CreateUniqueKey(); QueryInfo queryInfo = CreateQuery(queryType, queryKey, dcObjType, dcObjKey, memName, argKeys, argVals); QueryHelper.PushQuery(queryInfo); AnswerInfo result = WaitingForAnAnswer(queryKey, queryType); if (FirstCall) { // Start handshaking Subscriber.ListenForHanshaking(); FirstCall = false; } if (result == null) { return(default(object)); } if (result.IsCQGException) { var exception = new Exception(result.CQGException.Message); exception.Source = result.CQGException.Source; throw exception; } if (result.ValueKey == "value") { return(result.Value); } else if (result.ValueKey == "true") { return(true); } else { return(result.ValueKey); } }
// Main query processing method public void ProcessQuery(QueryInfo query) { // Object where the data obtained after query execution is placed // This object will be sent to the DB AnswerInfo answer; // Get a name of a symbol if it's CQGTimedBarsRequestClass object's request // and show it in MiniMonitor form if (query.ObjectType == "CQGTimedBarsRequestClass") { object qObj = UsedObjs.Contains(query.ObjectKey) ? UsedObjs[query.ObjectKey] : ServerDictionaries.GetObjectFromTheDictionary(query.ObjectKey); string instrName = (string)qObj.GetType().InvokeMember("Symbol", BindingFlags.GetProperty, null, qObj, null); if (!DCMiniMonitor.symbolsList.Contains(instrName)) { DCMiniMonitor.symbolsList.Add(instrName); Program.MiniMonitor.SymbolsListsUpdate(); } } // Handling of the request depending on its kind switch (query.QueryType) { case QueryType.CallCtor: { try { string key; // Handling of the ctor calling request and creation of an object depending on its type switch (query.MemberName) { // Handling of CQGCEL ctor calling request case "CQG.CQGCELClass": key = CqgDataManagement.CEL_key; break; // Common case default: object[] args = Core.GetArgsIntoArrayFromTwoDicts(query.ArgKeys, query.ArgValues); object qObj = CQGAssm.CreateInstance(query.MemberName, false, BindingFlags.CreateInstance, null, args, null, null); key = Core.CreateUniqueKey(); ServerDictionaries.PutObjectToTheDictionary(key, qObj); UsedObjs.Add(key, qObj); break; } answer = new AnswerInfo(query.QueryKey, query.ObjectKey, query.MemberName, valueKey: key); PushAnswerAndDeleteQuery(answer); } catch { try { AutoGenQueryProcessing(query); } catch (Exception ex) { answer = CreateExceptionAnswer(ex, query); PushAnswerAndDeleteQuery(answer); } } } break; case QueryType.CallDtor: { if (query.ObjectKey != CqgDataManagement.CEL_key) { UsedObjs.Remove(query.ObjectKey); ServerDictionaries.RemoveObjectFromTheDictionary(query.ObjectKey); } // Remove name of a symbol if it's CQG.CQGTimedBarsRequest object deleting // from MiniMonitor form if (query.MemberName == "CQG.CQGTimedBarsRequest") { object qObj = UsedObjs.Contains(query.ObjectKey) ? UsedObjs[query.ObjectKey] : ServerDictionaries.GetObjectFromTheDictionary(query.ObjectKey); string symbName = (string)qObj.GetType().InvokeMember("Symbol", BindingFlags.GetProperty, null, qObj, null); DCMiniMonitor.symbolsList.Remove(symbName); Program.MiniMonitor.SymbolsListsUpdate(); } answer = new AnswerInfo(query.QueryKey, query.ObjectKey, query.MemberName, value: true); PushAnswerAndDeleteQuery(answer); } break; case QueryType.GetProperty: { object qObj = UsedObjs.Contains(query.ObjectKey) ? UsedObjs[query.ObjectKey] : ServerDictionaries.GetObjectFromTheDictionary(query.ObjectKey); object[] args = Core.GetArgsIntoArrayFromTwoDicts(query.ArgKeys, query.ArgValues); try { // Getting of property value var propV = qObj.GetType().InvokeMember(query.MemberName, BindingFlags.GetProperty, null, qObj, args); // Checking type of property value and returning value or value key // (second, if it's not able to be transmitted through the database) answer = Core.IsSerializableType(propV.GetType()) ? CreateValAnswer(query.QueryKey, query.ObjectKey, query.MemberName, propV) : CreateKeyAnswer(query.QueryKey, query.ObjectKey, query.MemberName, propV); PushAnswerAndDeleteQuery(answer); } catch { try { AutoGenQueryProcessing(query); } catch (Exception ex) { answer = CreateExceptionAnswer(ex, query); PushAnswerAndDeleteQuery(answer); } } } break; case QueryType.SetProperty: { object qObj = UsedObjs.Contains(query.ObjectKey) ? UsedObjs[query.ObjectKey] : ServerDictionaries.GetObjectFromTheDictionary(query.ObjectKey); object[] args = Core.GetArgsIntoArrayFromTwoDicts(query.ArgKeys, query.ArgValues); if (string.Concat(qObj.GetType()) == "CQG.CQGTimedBarsRequest" && query.MemberName == "Symbol") { DCMiniMonitor.symbolsList.Add(string.Concat(args[0])); Program.MiniMonitor.SymbolsListsUpdate(); } try { // Setting of property value qObj.GetType().InvokeMember(query.MemberName, BindingFlags.SetProperty, null, qObj, args); answer = new AnswerInfo(query.QueryKey, query.ObjectKey, query.MemberName, value: true); PushAnswerAndDeleteQuery(answer); } catch { try { AutoGenQueryProcessing(query); } catch (Exception ex) { answer = CreateExceptionAnswer(ex, query); PushAnswerAndDeleteQuery(answer); } } } break; case QueryType.CallMethod: { // Handling of Shutdown method calling by CQGCEL object. This method has not be called from client applications if (query.MemberName == "Shutdown") { var returnKey = "true"; answer = new AnswerInfo(query.QueryKey, query.ObjectKey, query.MemberName, valueKey: returnKey); PushAnswerAndDeleteQuery(answer); break; } object qObj = UsedObjs.Contains(query.ObjectKey) ? UsedObjs[query.ObjectKey] : ServerDictionaries.GetObjectFromTheDictionary(query.ObjectKey); object[] args = Core.GetArgsIntoArrayFromTwoDicts(query.ArgKeys, query.ArgValues); try { object returnV; bool isGetter = query.MemberName.StartsWith("get_"); bool isSetter = query.MemberName.StartsWith("set_"); if (isGetter || isSetter) { // Access property instead of calling method string propName = query.MemberName.Substring(4); BindingFlags invokeAttr = isGetter ? BindingFlags.GetProperty : BindingFlags.SetProperty; returnV = qObj.GetType().InvokeMember(propName, invokeAttr, null, qObj, args); } else { returnV = qObj.GetType().InvokeMember(query.MemberName, BindingFlags.InvokeMethod, null, qObj, args); } if (!object.ReferenceEquals(returnV, null)) { // Handling method call request depending of return value type answer = Core.IsSerializableType(returnV.GetType()) ? CreateValAnswer(query.QueryKey, query.ObjectKey, query.MemberName, returnV) : CreateKeyAnswer(query.QueryKey, query.ObjectKey, query.MemberName, returnV); } else { // Handling void method call var returnKey = "true"; answer = new AnswerInfo(query.QueryKey, query.ObjectKey, query.MemberName, valueKey: returnKey); } PushAnswerAndDeleteQuery(answer); } catch { try { AutoGenQueryProcessing(query); } catch (Exception ex) { answer = CreateExceptionAnswer(ex, query); PushAnswerAndDeleteQuery(answer); } } } break; case QueryType.SubscribeToEvent: case QueryType.UnsubscribeFromEvent: { object qObj = UsedObjs.Contains(query.ObjectKey) ? UsedObjs[query.ObjectKey] : ServerDictionaries.GetObjectFromTheDictionary(query.ObjectKey); try { System.Reflection.EventInfo ei = qObj.GetType().GetEvent(query.MemberName); if (EventHandler.EventAppsSubscribersNum.ContainsKey(query.MemberName)) { EventHandler.EventAppsSubscribersNum[query.MemberName] = query.QueryType == QueryType.SubscribeToEvent ? EventHandler.EventAppsSubscribersNum[query.MemberName] + 1 : EventHandler.EventAppsSubscribersNum[query.MemberName] - 1; } else { EventHandler.EventAppsSubscribersNum.Add(query.MemberName, 1); } // Find corresponding CQG delegate Type delType = FindDelegateType(CQGAssm, query.MemberName); // Instantiate the delegate with our own handler var eventHandlersMethods = typeof(CQGEventHandlers).GetMethods(); MethodInfo handlerInfo = null; for (int i = 0; i < eventHandlersMethods.Length; i++) { if (eventHandlersMethods[i].Name.Contains(query.MemberName)) { handlerInfo = eventHandlersMethods[i]; } } Delegate d = Delegate.CreateDelegate(delType, handlerInfo); if (query.QueryType == QueryType.SubscribeToEvent) { // Subscribe our handler to CQG event ei.AddEventHandler(qObj, d); } else if (query.QueryType == QueryType.UnsubscribeFromEvent) { // Unsubscribe our handler from CQG event ei.RemoveEventHandler(qObj, d); } answer = new AnswerInfo(query.QueryKey, query.ObjectKey, query.MemberName, value: true); PushAnswerAndDeleteQuery(answer); } catch { try { AutoGenQueryProcessing(query); } catch (Exception ex) { answer = CreateExceptionAnswer(ex, query); PushAnswerAndDeleteQuery(answer); } } if (query.QueryType == QueryType.SubscribeToEvent && query.MemberName == "DataConnectionStatusChanged") { // Fire this event explicitly, because data collector connects to real CQG beforehand and does not fire it anymore CQGEventHandlers._ICQGCELEvents_DataConnectionStatusChangedEventHandlerImpl(CqgDataManagement.currConnStat); } } break; default: { throw new ArgumentOutOfRangeException(); } } }