/// <summary> /// 处理接收到的数据 /// </summary> /// <param name="data"></param> /// <returns>是否成功</returns> private bool ProcessByte(ReciveData data) { try { //将收到的数据存在缓冲区 byte[] temp = new byte[data.Actual]; Array.Copy(data.Buffer, 0, temp, 0, temp.Length); data.UserToken.DataList.AddRange(temp); //数据超过Tcp自定义头部长度 if (data.UserToken.DataList.Count > NetWorkBase.TcpHeadLength && data.UserToken.DataList.Count >= data.UserToken.CurrentPackageLength) { //创建信息容器 List <ReciveData> list = new List <ReciveData>(); //处理完成后 不管连接是否失效 那信息都是有效的 DecodeData(list, data.UserToken); if (list.Count > 0) { foreach (var item in list) { //加入队列 MCQ.Enqueue(item); } } } } catch (Exception e) { data.UserToken.Reset("处理接收到的数据:" + e.Message); return(false); } return(true); }
public MCQ LoadItem(string Id) { var obj = new MCQ(); #region Item string itemQuery = $"EXECUTE SP_DisplayQuestionMWQ '{Id}'"; obj.Item = _db.Database.SqlQuery <Item>(itemQuery).FirstOrDefault(); #endregion #region Answers string ansQuery = $"EXECUTE SP_DisplayAnswersMWQ '{Id}'"; obj.Answers = _db.Database.SqlQuery <Answer>(ansQuery).ToList(); #endregion #region Planner string plnQuery = $"EXECUTE SP_DisplayPlannerMWQ '{obj.Item.ILoId}'"; obj.Planner = _db.Database.SqlQuery <Planner>(plnQuery).FirstOrDefault(); #endregion return(obj); }
public ActionResult addQuestionsMCQ(MCQ mCQ) { var mcq = db.MCQs.Add(mCQ); mcq.Cource_Code = Session["c_id"].ToString(); mcq.Title_Id = Session["title"].ToString(); db.SaveChanges(); ModelState.Clear(); return(View()); }
public async Task <IActionResult> PutQuestion([FromRoute] string id, [FromBody] dynamic question) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var questionAsJsonString = JsonConvert.SerializeObject(question); string type = question.QuestionType; switch (type) { case "MCQ": MCQ mcqType = JsonConvert.DeserializeObject <MCQ>(questionAsJsonString); mcqType.QuestionId = id; await _questionService.EditQuestion(id, mcqType); break; case "MMCQ": MMCQ mmcqType = JsonConvert.DeserializeObject <MMCQ>(questionAsJsonString); mmcqType.QuestionId = id; await _questionService.EditQuestion(id, mmcqType); break; //case "FillBlanks": // FillBlanks fillBlanks = JsonConvert.DeserializeObject<FillBlanks>(questionAsJsonString); // fillBlanks.QuestionId = id; // await _questionService.EditQuestion(id, fillBlanks); // break; default: //TrueFalse trueFalse = JsonConvert.DeserializeObject<TrueFalse>(questionAsJsonString); //trueFalse.QuestionId = id; //await _questionService.EditQuestion(id, trueFalse); break; } return(Ok(question)); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BLL objquestionlist = new BLL(); DataTable dtquestion = objquestionlist.GetQuizQuestionList(Convert.ToInt32(Request.QueryString["QuizID"].ToString())); Session["QuizQuestionList"] = dtquestion; Session["CurrentQuestionIndex"] = "0"; if (dtquestion != null && dtquestion.Rows.Count > 0) { DataTable dtQuestionDetails = objquestionlist.GetQuestionDetails(Convert.ToInt32(dtquestion.Rows[0][0].ToString())); if (dtQuestionDetails != null && dtQuestionDetails.Rows.Count > 0) { qNo.InnerText = "1"; qtitle.InnerText = dtQuestionDetails.Rows[0]["Question_Title"].ToString(); QDesc.InnerText = dtQuestionDetails.Rows[0]["Question_Desc"].ToString(); DataTable dtoption = objquestionlist.GetOptionDetails(Convert.ToInt32(dtQuestionDetails.Rows[0]["Question_Id"].ToString())); if (dtQuestionDetails.Rows[0]["Question_Type"].ToString() == "MCQ") { MCQ.DataSource = dtoption; MCQ.DataTextField = "Question_Option"; MCQ.DataValueField = "Question_Option"; MCQ.DataBind(); } else if (dtQuestionDetails.Rows[0]["Question_Type"].ToString() == "TF") { TF.DataSource = dtoption; TF.DataTextField = "Question_Option"; TF.DataValueField = "Question_Option"; TF.DataBind(); } else { SCQ.DataSource = dtoption; SCQ.DataTextField = "Question_Option"; SCQ.DataValueField = "Question_Option"; SCQ.DataBind(); } } } } }
public IHttpActionResult UpdateMWQ([FromBody] MCQ model) { if (!ModelState.IsValid) { return(BadRequest("Invalid Model")); } if (model.Answers.Count != 0) { var correct = model.Answers.Where(a => a.Status == true).ToList(); if (!correct.Any()) { return(BadRequest("Please check at leastes on correct answer")); } } var result = new ItemService().EditMWQ(model); return(Ok(result)); }
public async Task <IActionResult> PostQuestion([FromBody] dynamic question) { Console.WriteLine(question); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var questionAsJsonString = JsonConvert.SerializeObject(question); string type = question.QuestionType; Console.WriteLine("questiontype " + type); switch (type) { case "MCQ": MCQ mcqType = JsonConvert.DeserializeObject <MCQ>(questionAsJsonString); await _questionService.AddQuestion(mcqType); break; case "MMCQ": MMCQ mmcqType = JsonConvert.DeserializeObject <MMCQ>(questionAsJsonString); await _questionService.AddQuestion(mmcqType); break; //case "FillBlanks": // FillBlanks fillBlanks = JsonConvert.DeserializeObject<FillBlanks>(questionAsJsonString); // await _questionService.AddQuestion(fillBlanks); // break; default: // TrueFalse trueFalse = JsonConvert.DeserializeObject<TrueFalse>(questionAsJsonString); // await _questionService.AddQuestion(trueFalse); break; } return(Ok(question)); }
/// <summary> /// 信息处理 /// </summary> /// <param name="server"></param> public void InvokeMessage() { while (true) { ReciveData data = null; try { if (MCQ.TryDequeue(out data)) { //登陆保存会话 此处已经分配了SESSIONID if (data.Command == Command.Login && ISessionAdd != null) { ISessionAdd.AddSession(data.UserToken); data.UserToken.LoginFinish(); ISessionAdd.OnConnected(data.UserToken); } else if (data.Command == Command.Token) { data.UserToken.LastTokenDateTime = DateTime.Now; } else { //客户端定时发送心跳 data.UserToken.Token(data); Process.Invoke(data); } } else { Thread.Sleep(1); } } catch (Exception e) { if (data != null) { data.UserToken.Reset("InvokeMessage:" + e.Message + e.StackTrace); } } } }
public ActionResult questsMCQ() { MCQ q = null; if (TempData["questions"] != null) { Queue <MCQ> qlist = (Queue <MCQ>)TempData["questions"]; if (qlist.Count > 0) { q = qlist.Peek(); qlist.Dequeue(); TempData["questions"] = qlist; TempData.Keep(); } else { return(RedirectToAction("Score")); } } return(PartialView(q)); }
private void Button_Click_3(object sender, RoutedEventArgs e) { MCQ mCQ = new MCQ(); mCQ.ShowDialog(); }
protected void PopulateQuestionDetails(int CurrentQuestionIndex) { BLL objquestionlist = new BLL(); DataTable dtquestion = (DataTable)Session["QuizQuestionList"]; DataTable dtAnswer; Session["CurrentQuestionIndex"] = CurrentQuestionIndex; if (dtquestion != null && dtquestion.Rows.Count > 0) { DataTable dtQuestionDetails = objquestionlist.GetQuestionDetails(Convert.ToInt32(dtquestion.Rows[CurrentQuestionIndex][0].ToString())); if (dtQuestionDetails != null && dtQuestionDetails.Rows.Count > 0) { qNo.InnerText = Convert.ToString(CurrentQuestionIndex + 1); qtitle.InnerText = dtQuestionDetails.Rows[0]["Question_Title"].ToString(); QDesc.InnerText = dtQuestionDetails.Rows[0]["Question_Desc"].ToString(); DataTable dtoption = objquestionlist.GetOptionDetails(Convert.ToInt32(dtQuestionDetails.Rows[0]["Question_Id"].ToString())); if (Session["dtAnswer"] != null) { dtAnswer = (DataTable)Session["dtAnswer"]; DataTable AnsExsit = dtAnswer.AsEnumerable().Where(o => o.Field <string>("QID") == dtQuestionDetails.Rows[0]["Question_Id"].ToString()).AsDataView().ToTable(); if (AnsExsit != null && AnsExsit.Rows.Count > 0) { if (dtQuestionDetails.Rows[0]["Question_Type"].ToString() == "MCQ") { string[] MCQAns = AnsExsit.Rows[0]["AnsOption"].ToString().Split(','); MCQ.Visible = true; MCQ.DataSource = dtoption; MCQ.DataTextField = "Question_Option"; MCQ.DataValueField = "Question_Option"; MCQ.DataBind(); for (int i = 0; i < MCQ.Items.Count; i++) { foreach (string ans in MCQAns) { if (ans != "") { if (i == Convert.ToInt32(ans) - 1) { MCQ.Items[i].Selected = true; // MCQAns = MCQAns + "," + Convert.ToString(i + 1); } } } } TF.Visible = false; SCQ.Visible = false; } else if (dtQuestionDetails.Rows[0]["Question_Type"].ToString() == "TF") { TF.Visible = true; TF.DataSource = dtoption; TF.DataTextField = "Question_Option"; TF.DataValueField = "Question_Option"; TF.DataBind(); // TF.SelectedItem.Text = AnsExsit.Rows[0]["AnsOption"].ToString(); TF.Items.FindByText(AnsExsit.Rows[0]["AnsOption"].ToString().Trim()).Selected = true; MCQ.Visible = false; SCQ.Visible = false; } else { SCQ.Visible = true; SCQ.DataSource = dtoption; SCQ.DataTextField = "Question_Option"; SCQ.DataValueField = "Question_Option"; SCQ.DataBind(); SCQ.SelectedIndex = Convert.ToInt32(AnsExsit.Rows[0]["AnsOption"].ToString()) - 1; MCQ.Visible = false; TF.Visible = false; } } else { if (dtQuestionDetails.Rows[0]["Question_Type"].ToString() == "MCQ") { MCQ.Visible = true; MCQ.DataSource = dtoption; MCQ.DataTextField = "Question_Option"; MCQ.DataValueField = "Question_Option"; MCQ.DataBind(); TF.Visible = false; SCQ.Visible = false; } else if (dtQuestionDetails.Rows[0]["Question_Type"].ToString() == "TF") { TF.Visible = true; TF.DataSource = dtoption; TF.DataTextField = "Question_Option"; TF.DataValueField = "Question_Option"; TF.DataBind(); MCQ.Visible = false; SCQ.Visible = false; } else { SCQ.Visible = true; SCQ.DataSource = dtoption; SCQ.DataTextField = "Question_Option"; SCQ.DataValueField = "Question_Option"; SCQ.DataBind(); MCQ.Visible = false; TF.Visible = false; } } } else { if (dtQuestionDetails.Rows[0]["Question_Type"].ToString() == "MCQ") { MCQ.Visible = true; MCQ.DataSource = dtoption; MCQ.DataTextField = "Question_Option"; MCQ.DataValueField = "Question_Option"; MCQ.DataBind(); TF.Visible = false; SCQ.Visible = false; } else if (dtQuestionDetails.Rows[0]["Question_Type"].ToString() == "TF") { TF.Visible = true; TF.DataSource = dtoption; TF.DataTextField = "Question_Option"; TF.DataValueField = "Question_Option"; TF.DataBind(); MCQ.Visible = false; SCQ.Visible = false; } else { SCQ.Visible = true; SCQ.DataSource = dtoption; SCQ.DataTextField = "Question_Option"; SCQ.DataValueField = "Question_Option"; SCQ.DataBind(); MCQ.Visible = false; TF.Visible = false; } } } } }
public ReturnMessage EditMWQ(MCQ model) { bool flag = IsPublishedExam(model.Item.Id); List <Ids> Ids = new List <Ids>(); #region Item string itemQuery = ""; if (model.Item.ILoId == null) { itemQuery = $"EXECUTE SP_EditMWQUnAssociate '{model.Item.Id}', N'{model.Item.Stem}', {model.Item.Duration}, '{model.Item.Level}'"; _db.Database.SqlQuery <string>(itemQuery).FirstOrDefault(); } else { itemQuery = $"EXECUTE SP_EditMWQAssociate '{model.Item.Id}', N'{model.Item.Stem}', {model.Item.Duration}, '{model.Item.ILoId}', '{model.Item.Level}'"; _db.Database.SqlQuery <string>(itemQuery).FirstOrDefault(); } if (!flag) { // Update ItemArchieve string query = $"EXECUTE SP_UndateItemArchieve '{model.Item.Id}', '{model.Item.Stem}', {model.Item.Duration}, '{model.Item.Level}'"; Ids = _db.Database.SqlQuery <Ids>(query).ToList(); } #endregion #region Answers string deleteansQuery = $"EXECUTE SP_DeleteAnssersBasedOnQuestion '{model.Item.Id}'"; _db.Database.SqlQuery <string>(deleteansQuery).FirstOrDefault(); ReturnMessage ans = new ReturnMessage(); foreach (var val in model.Answers) { string aquery = $"EXECUTE SP_CreateAnswerAlternative '{model.Item.Id}','{val.Text}','{val.Status}'"; ans = _db.Database.SqlQuery <ReturnMessage>(aquery).FirstOrDefault(); } if (!flag) { foreach (var Id in Ids) { string deleteansArchQuery = $"EXECUTE SP_DeleteAnswersArchBasedOnQuestion '{Id.QId}'"; _db.Database.SqlQuery <string>(deleteansArchQuery).FirstOrDefault(); foreach (var answer in model.Answers) { string archquery = $"EXECUTE SP_CreateArchieveAlternatives '{Id.QId}','{answer.Text}','{answer.Status}','{Id.ExamId}'"; _db.Database.SqlQuery <string>(archquery).FirstOrDefault(); } } } #endregion return(ans); }
public void AddMCQ(MultipleChoice mcq) { MCQ.Add(mcq); TotalQuestions++; }