private string SetupBinary(string path) { AnswerSheet s = SetupSheet(); QBinary q1 = s.Form.Questions.AddANewQuestion <QBinary>("Test 1", true); QBinary q2 = s.Form.Questions.AddANewQuestion <QBinary>("Test 2", true); ABinary a1 = (ABinary)s.CreateAnswerFor(q1); a1.Answer = true; ABinary a2 = (ABinary)s.CreateAnswerFor(q2); a1.Answer = false; return(FormEngine.Save(path, s.Form)); }
private void Get_Click(object sender, RoutedEventArgs e) { AnswerSheet answerSheet = OnlineCheckManager.Instance.AnswerSheets.FirstOrDefault( s => s.AnswerChecks.Any(a => a.QuestionGroupId == QuestionGroupId && a.TeacherCheckManagerx.IsArbitration && !a.TeacherCheckManagerx.IsAllFinish)); if (answerSheet == null) { MessageBox.Show("木有了"); return; } AnswerCheck answerCheck = answerSheet.AnswerChecks.SingleOrDefault(s => s.QuestionGroupId == QuestionGroupId); answerCheck.TeacherCheckManagerx.AddTeacherChecks(new TeacherCheck() { TeacherId = TeacherId, CheckType = CheckTypes.Arbitration, Score = new Dictionary <string, double>() }); AnswerCheckLabel.Content = answerCheck.AnswerCheckId; FirstContentLabel.Content = answerCheck.Answers[0].AnswerId; SecondContentLabel.Content = answerCheck.Answers[1].AnswerId; //Question question = // OnlineCheckManager.Instance.QuestionGroups.SingleOrDefault(s => s.QuestionGroupId == QuestionGroupId) // .SeleteArbitrationQuestion(); //if (question == null) //{ // MessageBox.Show("this is over"); // return; //} //question.TeacherCheckManagerx.AddTeacherChecks(new TeacherCheck() //{ // TeacherId = TeacherId, // AnswerId = question.QuestionCheckId, // IsOver = false, // CheckType = CheckTypes.Arbitration //}); //QuestionCheckIdLabel.Content = question.QuestionCheckId; }
public void CreateAnAnswerSheet() { // Arrange Form f = SetupForm(); // Act AnswerSheet a1 = f.FindOrCreateAnswerSheetFor("User1"); AnswerSheet a2 = f.FindOrCreateAnswerSheetFor("User1"); AnswerSheet a3 = f.FindOrCreateAnswerSheetFor("User3"); // Assert Assert.AreSame(a1, a2); Assert.AreNotEqual(a1, a3); Assert.AreSame(a1.Form, f); Assert.AreEqual(2, f.Sheets.Count()); Assert.That(f.Sheets.Any(a => a == a1)); }
public void CreateAFormWithQFreeText() { Form f = FormEngine.CreateForm("Test"); QComposite n1 = f.Questions.AddANewQuestion <QComposite>("Informations sur le programme", false); QFreeText q1 = n1.AddANewQuestion <QFreeText>("Qu'aimez-vous dans ce programme ?", true); QFreeText q2 = (QFreeText)n1.AddANewQuestion("DynamicForms.Components.QFreeText, DynamicForms.Components", "Qu'est-ce qui marche particulièrement bien ?", false); QFreeText q3 = (QFreeText)n1.AddANewQuestion("DynamicForms.Components.QFreeText, DynamicForms.Components", "Dans quelle application l'utiliserez-vous ?", true); QComposite n2 = f.Questions.AddANewQuestion <QComposite>("Informations sur l'utilisation", false); QFreeText q4 = n2.AddANewQuestion <QFreeText>("Qu'est-ce qui est simple à utiliser pour vous ?", true); QFreeText q5 = n2.AddANewQuestion <QFreeText>("Comment l'utilisez-vous ?", false); AnswerSheet toto = f.FindOrCreateAnswerSheetFor("Toto"); AFreeText a1 = (AFreeText)toto.CreateAnswerFor(q1); a1.AllowEmptyAnswer = false; a1.FreeTextAnswer = "Une réponse de test 1"; AFreeText a2 = (AFreeText)toto.CreateAnswerFor(q2); a2.AllowEmptyAnswer = true; a2.FreeTextAnswer = "Une réponse de test 2"; AFreeText a3 = (AFreeText)toto.CreateAnswerFor(q3); a3.AllowEmptyAnswer = false; a3.FreeTextAnswer = "Une réponse de test 3"; AFreeText a4 = (AFreeText)toto.CreateAnswerFor(q4); a4.AllowEmptyAnswer = true; a4.FreeTextAnswer = ""; AFreeText a5 = (AFreeText)toto.CreateAnswerFor(q5); a5.AllowEmptyAnswer = false; a5.FreeTextAnswer = "Une réponse de test 5"; AFreeText a6 = (AFreeText)toto.CreateAnswerFor(q5); a6.AllowEmptyAnswer = false; a6.FreeTextAnswer = " "; a6.Accept(new RequirementValidator()); Assert.AreEqual(3, n1.Children.Count); Assert.AreEqual(2, n2.Children.Count); Assert.AreSame(q2.Parent, n1); Assert.AreSame(q4.Parent, n2); Assert.AreSame(toto.Answers[q1], a1); Assert.AreSame(toto.Answers[q5], a6); Assert.Throws <NotSupportedException>(delegate { toto.CreateAnswerFor(n1); }); }
public bool UpdateAnswerSheet(AnswerSheet AnswerSheetDAO) { try { AnswerSheet u = db.AnswerSheets.Where(p => p.IDAnswer == AnswerSheetDAO.IDAnswer).SingleOrDefault(); u.ThuTuCauHoi = AnswerSheetDAO.ThuTuCauHoi; u.Answer = AnswerSheetDAO.Answer; u.QuestionID = AnswerSheetDAO.QuestionID; u.DapAn = AnswerSheetDAO.DapAn; u.RemainTime = AnswerSheetDAO.RemainTime; db.SaveChanges(); return(true); } catch { return(false); } }
public ActionResult <AnswerSheet> UploadStudentAnswerSheet(int eid, [FromBody] AnswerSheet sheet) { Directory.CreateDirectory(STUDENT_ANS_SHEET_UPLOAD_PATH); if (sheet?.FileData.Length > 0) { var filePath = Path.Combine(STUDENT_ANS_SHEET_UPLOAD_PATH, sheet.FileName); var bytes = Convert.FromBase64String(sheet.FileData); System.IO.File.WriteAllBytes(filePath, bytes); var dao = new ExaminationsDao(); string path = dao.AddStudentAnswerSheet(eid, $"/api/examinations/student-ans-sheet/get/{sheet.FileName}"); sheet.FileData = ""; sheet.FilePath = path; return(sheet); } return(new AnswerSheet()); }
public void QuickMethodTest() { UserAuthentication.Login(TestData.UserData.Username, TestData.UserData.Password); Topic topic = TopicBank.AddTopic("sdfdsf"); Q_Zone.Models.Question.Question q1 = QuestionBank.AddQuestion(topic); Q_Zone.Models.Question.Question q2 = QuestionBank.AddQuestion(topic); Q_Zone.Models.Question.Question q3 = QuestionBank.AddQuestion(topic); Q_Zone.Models.Question.Question q4 = QuestionBank.AddQuestion(topic); Q_Zone.Models.Question.Question q5 = QuestionBank.AddQuestion(topic); Q_Zone.Models.Question.Question q6 = QuestionBank.AddQuestion(topic); Quiz quiz = QuizBank.AddQuiz(topic); quiz.QuizName = "dfgfdgdf"; quiz.AddQuestion(q1); quiz.AddQuestion(q2); quiz.AddQuestion(q3); quiz.AddQuestion(q4); quiz.AddQuestion(q5); quiz.AddQuestion(q6); quiz.DateTime = DateTime.UtcNow.AddMilliseconds(5); quiz.IsPublic = true; AnswerSheet answerSheet = new AnswerSheet(quiz); bool testBool = answerSheet.GiveAnswer(q1, "Correct answer"); answerSheet.GiveAnswer(q2, "Answer option 1"); answerSheet.GiveAnswer(q3, "Correct answer"); answerSheet.GiveAnswer(q4, "Correct answer"); answerSheet.Submit(); string testString = answerSheet.ShowGivenAnswer(q2); Result r1 = new Result(quiz); Result r2 = new Result(1, quiz); testBool = (r1 == r2); List <Quiz> quizList = RankList.ViewParticipatedQuizzes(maximumDuration: 5000); List <Result> rankList = RankList.ViewRankList(quiz); quizList = RankList.ViewStartedQuizzes(searchName: "d"); }
private void btnLogin_Click(object sender, EventArgs e) { var result = mQuizzes.Login(txtUsername.Text, txtPassword.Text); if (result.MessageError != null) { MessageBox.Show(result.MessageError, this.MessageBoxTitle); btnLogin.Enabled = true; btnLogout.Enabled = false; return; } else { MessageBox.Show("Đăng nhập thành công!"); this.mSessionToken = result.SessionToken; btnLogin.Enabled = false; txtUsername.Enabled = false; txtPassword.Enabled = false; btnLogout.Enabled = true; UpdateExamList(); var result2 = mQuizzes.GetLastAnswerSheet(mSessionToken); if (result2.AnswerSheet != null && result2.Exam != null) { initAnswerSheetTimer(result2.AnswerSheet, result2.Exam); mAnswerSheet = result2.AnswerSheet; loadNextQuizzes(); txtFirstName.Text = mAnswerSheet.FirstName; txtLastName.Text = mAnswerSheet.LastName; showRegister(false); showAnswer(true); } else { showRegister(true); showAnswer(false); } } }
public bool AddAnswerSheet(AnswerSheet an) { try { object[] valparams = { new SqlParameter("@IDAnswer", an.IDAnswer), new SqlParameter("@QuestionID", an.QuestionID), new SqlParameter("@ThuTuCauHoi", an.ThuTuCauHoi), new SqlParameter("@Answer", an.Answer), new SqlParameter("@DapAn", an.DapAn), new SqlParameter("@RemainTime", an.RemainTime) }; int res = db.Database.ExecuteSqlCommand("Insert_answersheet @IDAnswer, @QuestionID, @ThuTuCauHoi, @Answer, @DapAn, @RemainTime", valparams); db.SaveChanges(); if (res == 1) { return(true); } else { return(false); } } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Debug.WriteLine("- Entity of type \"{0}\", in state \"{1}\" has the following validation errors: ", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return(false); } catch (Exception e) { Debug.WriteLine(e.Message); return(false); } }
public static int CalculateScore(Exm exam, AnswerSheet answersheet) { int score = 0; foreach (Question question in exam.Questions) { foreach (Answer answer in answersheet.Answers) { if (answer.QuestionId == question.Id) { bool isAnswerCorrect = true; foreach (Option opt in question.Options) { if (opt.IsCorrect) { if (!answer.SelectedOptionIds.Contains(opt.Id)) { isAnswerCorrect = false; } } else { if (answer.SelectedOptionIds.Contains(opt.Id)) { isAnswerCorrect = false; } } } if (isAnswerCorrect) { score += question.Score.True; } else { score += question.Score.False; } } } } return(score); }
protected void btnNext_Click(object sender, EventArgs e) { //validate AnswerSheet answerSheet = AnswerHelper.GetAnswerSheet(this.UserId, this.ExamId); List <string> checkedOptionIds = new List <string>(); foreach (RepeaterItem item in repOptions.Items) { if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem) { var chkOption = item.FindControl("chkOption") as CheckBox; var litOptionId = item.FindControl("litOptionId") as Literal; if (chkOption.Checked) { checkedOptionIds.Add(litOptionId.Text); } } } if (checkedOptionIds.Count > 0) { if (answerSheet == null) { answerSheet = new AnswerSheet() { Answers = new List <Answer>() }; } if (!answerSheet.Answers.Any(x => x.QuestionId == litId.Text)) { answerSheet.Answers.Add(new Answer() { QuestionId = litId.Text, SelectedOptionIds = checkedOptionIds }); ExamHelper.SaveAnswerSheet(this.UserId, this.ExamId, answerSheet); } } _SetUIAndBindData(); }
protected void Page_Load(object sender, EventArgs e) { Exm exam = ExamHelper.GetExam(this.ExamId); if (IsAnswerMode) { AnswerSheet answersheet = AnswerHelper.GetAnswerSheet(this.SubmittedUserId, this.ExamId); //feed submitted answers exam = ExamHelper.ProcessAnswers(exam, answersheet); divExamDetails.Visible = false; } if (exam != null) { litIstructions.Text = exam.Instructions != null ? exam.Instructions : "-"; litTime.Text = exam.TimeInSeconds.HasValue ? Utils.TimeString(exam.TimeInSeconds.Value) : "-"; repQuestions.DataSource = exam.Questions; repQuestions.DataBind(); } }
public AnswerSheet AddAnswerSheet(Paper paper, String user) { var totalMarks = 0; var answerSheet = new AnswerSheet(); answerSheet.Paper = GetAllPapers().First(paper1 => paper1.PaperCode == paper.PaperCode); answerSheet.User = user; System.Diagnostics.Debug.Print(answerSheet.User + "----------------"); context.AnswerSheets.Add(answerSheet); context.SaveChanges(); for (var i = 0; i < paper.Questions.Count(); i++) { var answerSheet_Question = new AnswerSheet_Question(); answerSheet_Question.Question = answerSheet.Paper.Questions[i]; for (var j = 0; j < paper.Questions[i].Options.Count(); j++) { if (paper.Questions[i].Options[j].Correct == true) { for (var k = 0; k < paper.Questions[i].Options.Count(); k++) { if (answerSheet.Paper.Questions[i].Options[k].Correct == true && k == j) { totalMarks++; } } answerSheet_Question.selectedoption = answerSheet.Paper.Questions[i].Options[j]; } } answerSheet_Question.AnswerSheet = answerSheet; context.AnswerSheet_Questions.Add(answerSheet_Question); context.SaveChanges(); } answerSheet.ObtainedMarks = totalMarks; answerSheet.SubmitTime = DateTime.Now; context.SaveChanges(); return(answerSheet); }
public ActionResult saveAns(AnswerSheetTS a) { AnswerDAO dao = new AnswerDAO(); AnswerSheet ans = new AnswerSheet(); Answer an = new Answer(); var l = (ThiSinhLogin)Session[Constants.THISINH_SESSION]; int ida = dao.FindIDAnswer(l.ThiSinhID); bool x = true, y = true; //request data from json save answer an.DiemThuc = a.DiemThuc; an.DiemSo = a.DiemSo; an.ID = ida; x = dao.UpdateAnswerScore(an); //request data from json save answersheet for (int i = 0; i < a.answerSheet.Count; i++) { ans.RemainTime = a.RemainTime; ans.IDAnswer = ida; ans.QuestionID = a.answerSheet[i].QuestionID; ans.ThuTuCauHoi = a.answerSheet[i].ThuTuCauHoi; ans.DapAn = a.answerSheet[i].DapAn; ans.Answer = a.answerSheet[i].Answer; y = dao.AddAnswerSheet(ans); } //request datada from json save sv ThiSinhDAO ts = new ThiSinhDAO(); bool m = ts.UpdateActiveTimeThiSinh(l.ThiSinhID, a.RemainTime, true, true, GetLocalIPAddress()); bool kq = false; if (x == true && y == true && m == true) { kq = true; } return(Json(new { result = kq })); }
public static Question NextQuestion(Exm exam, AnswerSheet answersheet) { foreach (Question question in exam.Questions) { bool unAnswered = true; if (answersheet != null) { foreach (Answer answer in answersheet.Answers) { if (answer.QuestionId == question.Id) { unAnswered = false; } } } if (unAnswered) { return(question); } } return(null); }
private void _SetUIAndBindData() { Exm exam = ExamHelper.GetExam(this.ExamId); AnswerSheet answersheet = AnswerHelper.GetAnswerSheet(this.UserId, this.ExamId); if (!Page.IsPostBack) { divQuestionContainer.Visible = false; divMessage.Visible = false; divWelcome.Visible = true; litIstructions.Text = exam.Instructions != null ? exam.Instructions : "-"; litTime.Text = exam.TimeInSeconds.HasValue ? Utils.TimeString(exam.TimeInSeconds.Value) : "-"; return; } else if (answersheet != null && answersheet.Answers.Count == exam.Questions.Count) { divQuestionContainer.Visible = false; divMessage.Visible = true; divWelcome.Visible = false; //lblMessage.Text = "Finished!"; } else if (answersheet == null || answersheet.Answers.Count < exam.Questions.Count) { divQuestionContainer.Visible = true; divMessage.Visible = false; divWelcome.Visible = false; Question question = ExamHelper.NextQuestion(exam, answersheet); if (question != null) { populateQuestionUI(question); } } }
private void loadNextQuizzes() { var result = mQuizzes.NextQuizzes(mSessionToken, mAnswerSheet); if (result.MessageError != null) { MessageBox.Show(result.MessageError, this.MessageBoxTitle); return; } else { lbQuestion.Text = string.Format("Câu số {0}: {1}", result.Index, result.Question); rbChooseA.Text = string.Format("A. {0}", result.ChooseA); rbChooseB.Text = string.Format("B. {0}", result.ChooseB); rbChooseC.Text = string.Format("C. {0}", result.ChooseC); rbChooseD.Text = string.Format("D. {0}", result.ChooseD); if (result.Answer != null) { rbChooseA.Checked = result.Answer.Equals("A"); rbChooseB.Checked = result.Answer.Equals("B"); rbChooseC.Checked = result.Answer.Equals("C"); rbChooseD.Checked = result.Answer.Equals("D"); } else { rbChooseA.Checked = false; rbChooseB.Checked = false; rbChooseC.Checked = false; rbChooseD.Checked = false; } mAnswerSheet = result.AnswerSheet; } }
public static async Task <IActionResult> EndExam( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "exam/{examId}/end")] AnswerSheet req, string examId, ILogger log, ExecutionContext context) { log.LogInformation($"End of exam for {req.Candidate.FirstName}."); var config = new ConfigurationBuilder() .SetBasePath(context.FunctionAppDirectory) .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables() .Build(); var dbName = config["COSMOSDB_DBNAME"]; using (var client = new DocumentClient(new Uri(config["COSMOSDB_URI"]), config["COSMOSDB_KEY"])) { Uri collectionUri = UriFactory.CreateDocumentCollectionUri(dbName, AnswerSheetCollectionId); await client.CreateDocumentAsync(collectionUri, req); } return(new OkObjectResult(new { Status = "Ok" })); }
protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["sheetId"] != null) { _currentSheet = Module.AnswerSheetGetById(Convert.ToInt32(Request.QueryString["sheetId"])); } else { _currentSheet = new AnswerSheet(); } if (!IsPostBack) { rptGroups.DataSource = Module.QuestionGroupGetAll(); rptGroups.DataBind(); //ddlCruises.DataSource = Module.CruiseGetAll(); //ddlCruises.DataTextField = "Name"; //ddlCruises.DataValueField = "Id"; //ddlCruises.DataBind(); ddlNationalities.DataSource = Module.NationalityGetAll(); ddlNationalities.DataTextField = "Name"; ddlNationalities.DataValueField = "Id"; ddlNationalities.DataBind(); ddlNationalities.Items.Insert(0, "-- Not available --"); if (Request.QueryString["startdate"] != null) { DateTime date = DateTime.FromOADate(Convert.ToDouble(Request.QueryString["startdate"])); txtStartDate.Text = date.ToString("dd/MM/yyyy"); ddlBookings.DataSource = Module.BookingGetByStartDate(date, null, false); ddlBookings.DataTextField = "BookingIdOS"; ddlBookings.DataValueField = "Id"; ddlBookings.DataBind(); } else if (Request.QueryString["bookingid"] != null) { Booking booking = Module.BookingGetById(Convert.ToInt32(Request.QueryString["bookingid"])); ddlBookings.DataSource = Module.BookingGetByStartDate(booking.StartDate, null, false); ddlBookings.DataTextField = "BookingIdOS"; ddlBookings.DataValueField = "Id"; ddlBookings.DataBind(); ddlBookings.SelectedValue = booking.Id.ToString(); //ddlCruises.SelectedValue = booking.Cruise.Id.ToString(); _currentSheet.Booking = booking; txtStartDate.Text = booking.StartDate.ToString("dd/MM/yyyy"); } if (_currentSheet.Booking != null) { Booking booking = _currentSheet.Booking; SailExpense expense = Module.ExpenseGetByDate(booking.Trip, booking.StartDate); txtGuide.Visible = false; txtDriver.Visible = false; ddlGuide.Items.Clear(); ddlDrivers.Items.Clear(); foreach (ExpenseService sv in expense.Services) { if (sv.Type.Id == SailsModule.GUIDE_COST) { if (sv.Supplier != null) { ddlGuide.Items.Add(sv.Supplier.Name); } } if (sv.Type.Id == 19) { if (string.IsNullOrEmpty(sv.Name)) { if (sv.Supplier != null) { ddlDrivers.Items.Add(sv.Supplier.Name); } } else { ddlDrivers.Items.Add(sv.Name); } } } ddlGuide.Items.Insert(0, "-- Not specified --"); ddlDrivers.Items.Insert(0, "-- Not specified --"); } else { ddlGuide.Visible = false; ddlDrivers.Visible = false; } ddlBookings.Items.Insert(0, "-- Not available --"); if (_currentSheet.Id > 0) { if (_currentSheet.Booking != null) { ddlBookings.SelectedValue = _currentSheet.Booking.Id.ToString(); if (!string.IsNullOrEmpty(_currentSheet.Guide)) { ddlGuide.SelectedValue = _currentSheet.Guide; } if (!string.IsNullOrEmpty(_currentSheet.Driver)) { ddlDrivers.SelectedValue = _currentSheet.Driver; } } else { txtGuide.Text = _currentSheet.Guide; txtDriver.Text = _currentSheet.Driver; } if (_currentSheet.Nationality != null) { ddlNationalities.SelectedValue = _currentSheet.Nationality.Id.ToString(); } //ddlCruises.SelectedValue = _currentSheet.Cruise.Id.ToString(); if (_currentSheet.Date.HasValue) { txtStartDate.Text = _currentSheet.Date.Value.ToString("dd/MM/yyyy"); } txtName.Text = _currentSheet.Name; txtEmail.Text = _currentSheet.Email; txtAddress.Text = _currentSheet.Address; txtRoomNumber.Text = _currentSheet.RoomNumber; } } }
private void initAnswerSheetTimer(AnswerSheet answerSheet, Exam exam) { mLeftTime = exam.Time - (DateTime.Now - answerSheet.CreatedAt).TotalMinutes; timerAnswerSheet.Interval = 1000; timerAnswerSheet.Start(); }
public ActionResult Index(CtrlViewModel ctrl) { List <Teacher> teachers = new List <Teacher>(); for (int i = 0; i < ctrl.TeacherCounts; i++) { teachers.Add(new Teacher() { TeacherId = i + 1, TeacherName = "第" + (i + 1).ToString() + "位教师" }); } OnlineCheckManager.Instance.Teachers.AddRange(teachers); int x = 1; for (int i = 0; i < ctrl.QuestionGroupCounts; i++) { QuestionGroup questionGroup = new QuestionGroup((i + 1).ToString(), ctrl.JudgeMode, teachers); questionGroup.QuestionGroupName = "第" + (i + 1).ToString() + "题组"; for (int j = 0; j < ctrl.QuestionCounts; j++) { Question firstQuestion = new Question(questionGroup.QuestionGroupId, ((i * ctrl.QuestionCounts) + j + 1).ToString(), ctrl.Threshold, 25, new Random((int)DateTime.Now.Ticks * j).Next()); questionGroup.Questions.Add(firstQuestion); } OnlineCheckManager.Instance.QuestionGroups.Add(questionGroup); } for (int i = 0; i < ctrl.StudentCounts; i++) { AnswerSheet answerSheet = new AnswerSheet() { MaxPicUrl = Guid.NewGuid().ToString(), StudentName = "学生" + (i + 1).ToString(), StudentSubjectId = new Random().Next(99999) / (i + 1) }; List <AnswerCheck> answerChecks = new List <AnswerCheck>(); for (int j = 0; j < ctrl.QuestionGroupCounts; j++) { QuestionGroup qg = OnlineCheckManager.Instance.QuestionGroups[j]; answerChecks.Add(new AnswerCheck(qg.QuestionGroupId, qg.Questions.Select(s => new Answer(s, Guid.NewGuid().ToString())).ToList(), qg.JudgeMode)); } answerSheet.AnswerChecks = answerChecks; OnlineCheckManager.Instance.AnswerSheets.Add(answerSheet); } OnlineCheckManager.Instance.IsTesting = true; return(RedirectToAction("list")); }
protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["sheetId"] != null) { _currentSheet = Module.AnswerSheetGetById(Convert.ToInt32(Request.QueryString["sheetId"])); } else { _currentSheet = new AnswerSheet(); } if (!IsPostBack) { rptGroups.DataSource = Module.QuestionGroupGetAll(); rptGroups.DataBind(); rptDayboat.DataSource = Module.QuestionGroupGetAllDayboat(); rptDayboat.DataBind(); ddlCruises.DataSource = Module.CruiseGetAll(); ddlCruises.DataTextField = "Name"; ddlCruises.DataValueField = "Id"; ddlCruises.DataBind(); ddlNationalities.DataSource = Module.NationalityGetAll(); ddlNationalities.DataTextField = "Name"; ddlNationalities.DataValueField = "Id"; ddlNationalities.DataBind(); ddlNationalities.Items.Insert(0, "-- Not available --"); if (Request.QueryString["startdate"] != null) { DateTime date = DateTime.FromOADate(Convert.ToDouble(Request.QueryString["startdate"])); txtStartDate.Text = date.ToString("dd/MM/yyyy"); ddlBookings.DataSource = Module.BookingGetByStartDate(date, null, false); ddlBookings.DataTextField = "BookingIdOS"; ddlBookings.DataValueField = "Id"; ddlBookings.DataBind(); } else if (Request.QueryString["bi"] != null) { Booking booking = Module.BookingGetById(Convert.ToInt32(Request.QueryString["bi"])); ddlBookings.DataSource = Module.BookingGetByStartDate(booking.StartDate, null, false); ddlBookings.DataTextField = "BookingIdOS"; ddlBookings.DataValueField = "Id"; ddlBookings.DataBind(); ddlBookings.SelectedValue = booking.Id.ToString(); ddlCruises.SelectedValue = booking.Cruise.Id.ToString(); _currentSheet.Booking = booking; if (booking.Trip.NumberOfDay != 3) { pnDayboat.Visible = false; } } if (_currentSheet.Booking != null) { Booking booking = _currentSheet.Booking; Expense expense = Module.ExpenseGetByDate(booking.Cruise, booking.StartDate); txtGuide.Visible = false; txtDriver.Visible = false; ddlGuide.Items.Clear(); ddlDrivers.Items.Clear(); var expenses = SurveyInputBLL.ExpenseGetAllByCriterion(booking.Cruise.Id, booking.StartDate).Future().ToList(); var guideExpense = expenses.Where(x => x.Type == "Guide").FirstOrDefault(); if (guideExpense != null && guideExpense.Guide != null) { ddlGuide.Items.Add(guideExpense.Guide.Name); } var driver = expense != null ? expense.BusByDate != null ? expense.BusByDate.Driver_Name : "" : ""; ddlGuide.Items.Insert(0, "-- Not specified --"); ddlDrivers.Items.Insert(0, "-- Not specified --"); if (booking.Trip.NumberOfDay != 3) { pnDayboat.Visible = false; } } else { ddlGuide.Visible = false; ddlDrivers.Visible = false; } ddlBookings.Items.Insert(0, "-- Not available --"); if (_currentSheet.Id > 0) { if (_currentSheet.Booking != null) { ddlBookings.SelectedValue = _currentSheet.Booking.Id.ToString(); if (!string.IsNullOrEmpty(_currentSheet.Guide)) { ddlGuide.SelectedValue = _currentSheet.Guide; } if (!string.IsNullOrEmpty(_currentSheet.Driver)) { ddlDrivers.SelectedValue = _currentSheet.Driver; } } else { txtGuide.Text = _currentSheet.Guide; txtDriver.Text = _currentSheet.Driver; } if (_currentSheet.Nationality != null) { ddlNationalities.SelectedValue = _currentSheet.Nationality.Id.ToString(); } ddlCruises.SelectedValue = _currentSheet.Cruise.Id.ToString(); if (_currentSheet.Date.HasValue) { txtStartDate.Text = _currentSheet.Date.Value.ToString("dd/MM/yyyy"); } txtName.Text = _currentSheet.Name; txtEmail.Text = _currentSheet.Email; txtAddress.Text = _currentSheet.Address; txtRoomNumber.Text = _currentSheet.RoomNumber; } } }
/// <summary> ///This controller creates answersheet and insert the data into the DB. After that it saves the changes /// </summary> public async Task <string> PostAnswerSheet() { // await _context.SaveChangesAsync(); //todo get and save other stuff here AnswerSheet resultAnswerSheet = new AnswerSheet { QuestionResponses = new List <QuestionResponse>(), Test = _context.Tests.Find(long.Parse(Request.Form["testId"])) }; /// <summary> ///Checks if the user is loged in and what is his id /// </summary> if (User.Identity is ClaimsIdentity claimsIdentity) { var userIdClaim = claimsIdentity.Claims .FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier); if (userIdClaim != null) { //има такъв потребител var userIdValue = userIdClaim.Value; resultAnswerSheet.UserId = userIdValue; resultAnswerSheet.UserName = User.Identity.Name; } else { resultAnswerSheet.UserId = "0"; resultAnswerSheet.UserName = "******"; } } else { resultAnswerSheet.UserId = "0"; resultAnswerSheet.UserName = "******"; } /// <summary> /// Puts all the answers given during the test into answersheet.question responses /// </summary> var questionResponses = Request.Form["QuestionResponses"]; foreach (var item in questionResponses) { Answer answer = _context.Answers.Find(int.Parse(item)); Question question = _context.Questions.Where(q => q.Answers.Contains(answer)).Single(); QuestionResponse questionResponse = new QuestionResponse { Question = question, SelectedAnswers = new List <Answer>() { answer }, TextAnswer = "" }; resultAnswerSheet.QuestionResponses.Add(questionResponse); } Score score = new Score { CurrentScore = double.Parse(Request.Form["Score"]), MaxScore = 0 }; resultAnswerSheet.Score = score; var answerSheet = _context.AnswerSheet.Add(resultAnswerSheet); await _context.SaveChangesAsync(); return("{\"status\": \"ok\"}"); }
public void MockTemplateContext() { //initialize Answer answer = new Answer { Id = 1, AnswerText = "Отговор 1", Correct = 1, WrongText = "" }; Answer answer2 = new Answer { Id = 2, AnswerText = "Отговор 2", Correct = 0, WrongText = "" }; Answer answer3 = new Answer { Id = 3, AnswerText = "Отговор 3", Correct = 0, WrongText = "" }; List <Answer> answers = new List <Answer> { answer, answer2, answer3 }; var data1 = new List <Answer> { answer, answer2, answer3 }.AsQueryable(); var mockAnswer = new Mock <DbSet <Answer> >(); mockAnswer.As <IQueryable <Answer> >().Setup(m => m.Provider).Returns(data1.Provider); mockAnswer.As <IQueryable <Answer> >().Setup(m => m.Expression).Returns(data1.Expression); mockAnswer.As <IQueryable <Answer> >().Setup(m => m.ElementType).Returns(data1.ElementType); mockAnswer.As <IQueryable <Answer> >().Setup(m => m.GetEnumerator()).Returns(data1.GetEnumerator()); Question question = new Question { Answers = answers, Id = 1, QuestionText = "Въпрос", Score = 2, WrongText = "" }; List <Question> questions = new List <Question> { question }; var data2 = new List <Question> { question }.AsQueryable(); var mockQuestion = new Mock <DbSet <Question> >(); mockQuestion.As <IQueryable <Question> >().Setup(m => m.Provider).Returns(data2.Provider); mockQuestion.As <IQueryable <Question> >().Setup(m => m.Expression).Returns(data2.Expression); mockQuestion.As <IQueryable <Question> >().Setup(m => m.ElementType).Returns(data2.ElementType); mockQuestion.As <IQueryable <Question> >().Setup(m => m.GetEnumerator()).Returns(data2.GetEnumerator()); var questionResponse = new QuestionResponse { Id = 1, Question = question, SelectedAnswers = new List <Answer> { answer }, TextAnswer = "" }; List <QuestionResponse> questionResponses = new List <QuestionResponse> { questionResponse }; var data3 = new List <QuestionResponse> { questionResponse }.AsQueryable(); var mockQuestionR = new Mock <DbSet <QuestionResponse> >(); mockQuestionR.As <IQueryable <QuestionResponse> >().Setup(m => m.Provider).Returns(data3.Provider); mockQuestionR.As <IQueryable <QuestionResponse> >().Setup(m => m.Expression).Returns(data3.Expression); mockQuestionR.As <IQueryable <QuestionResponse> >().Setup(m => m.ElementType).Returns(data3.ElementType); mockQuestionR.As <IQueryable <QuestionResponse> >().Setup(m => m.GetEnumerator()).Returns(data3.GetEnumerator()); Score score = new Score { Id = 1, CurrentScore = 2, MaxScore = 2, Note = "" }; var data4 = new List <Score> { score }.AsQueryable(); var mockScore = new Mock <DbSet <Score> >(); mockScore.As <IQueryable <Score> >().Setup(m => m.Provider).Returns(data4.Provider); mockScore.As <IQueryable <Score> >().Setup(m => m.Expression).Returns(data4.Expression); mockScore.As <IQueryable <Score> >().Setup(m => m.ElementType).Returns(data4.ElementType); mockScore.As <IQueryable <Score> >().Setup(m => m.GetEnumerator()).Returns(data4.GetEnumerator()); Test test = new Test { Id = 1, Test_Name = "Начално ниво", Questions = questions }; var data5 = new List <Test> { test }.AsQueryable(); var mockTest = new Mock <DbSet <Test> >(); mockTest.As <IQueryable <Test> >().Setup(m => m.Provider).Returns(data5.Provider); mockTest.As <IQueryable <Test> >().Setup(m => m.Expression).Returns(data5.Expression); mockTest.As <IQueryable <Test> >().Setup(m => m.ElementType).Returns(data5.ElementType); mockTest.As <IQueryable <Test> >().Setup(m => m.GetEnumerator()).Returns(data5.GetEnumerator()); var answerSheet = new AnswerSheet { Id = 1, QuestionResponses = questionResponses, Score = score, Test = test, UserId = "1", UserName = "******" }; var data = new List <AnswerSheet> { answerSheet }.AsQueryable(); var mockSet = new Mock <DbSet <AnswerSheet> >(); mockSet.As <IQueryable <AnswerSheet> >().Setup(m => m.Provider).Returns(data.Provider); mockSet.As <IQueryable <AnswerSheet> >().Setup(m => m.Expression).Returns(data.Expression); mockSet.As <IQueryable <AnswerSheet> >().Setup(m => m.ElementType).Returns(data.ElementType); mockSet.As <IQueryable <AnswerSheet> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator()); var user = new AspNetUsers { Id = "1", UserName = "******", NormalizedUserName = "******", Email = "*****@*****.**", NormalizedEmail = "*****@*****.**", EmailConfirmed = false, PasswordHash = "AQAAAAEAACcQAAAAEDRMWdzHFXGRE3SgwHOq8nNPbPlucCQjPRkfK54J9YXxCjg7p2fk6Q1S83UnNINPFw==", SecurityStamp = "M6KU2AJELWWYDCKBRZOJS6TZ4S2O3J3U", ConcurrencyStamp = "93de2d96-9c3f-4c51-8676-4ca10ab68656", PhoneNumber = "NULL", PhoneNumberConfirmed = false, TwoFactorEnabled = false, LockoutEnd = null, LockoutEnabled = true, AccessFailedCount = 0 }; var data6 = new List <AspNetUsers> { user }.AsQueryable(); var mockUser = new Mock <DbSet <AspNetUsers> >(); mockSet.As <IQueryable <AspNetUsers> >().Setup(m => m.Provider).Returns(data6.Provider); mockSet.As <IQueryable <AspNetUsers> >().Setup(m => m.Expression).Returns(data6.Expression); mockSet.As <IQueryable <AspNetUsers> >().Setup(m => m.ElementType).Returns(data6.ElementType); mockSet.As <IQueryable <AspNetUsers> >().Setup(m => m.GetEnumerator()).Returns(data6.GetEnumerator()); var mockContext = new Mock <Brainzzler_DBContext>(); mockContext.Setup(set => set.AnswerSheet).Returns(mockSet.Object); mockContext.Setup(set => set.Answers).Returns(mockAnswer.Object); mockContext.Setup(set => set.Questions).Returns(mockQuestion.Object); mockContext.Setup(set => set.QuestionResponse).Returns(mockQuestionR.Object); mockContext.Setup(set => set.Score).Returns(mockScore.Object); mockContext.Setup(set => set.Tests).Returns(mockTest.Object); mockContext.Setup(set => set.AspNetUsers).Returns(mockUser.Object); }
public void AnswerSheetsControllerReturnsNoContentAsync() { //initialize Answer answer = new Answer { Id = 1, AnswerText = "Отговор 1", Correct = 1, WrongText = "" }; Answer answer2 = new Answer { Id = 2, AnswerText = "Отговор 2", Correct = 0, WrongText = "" }; Answer answer3 = new Answer { Id = 3, AnswerText = "Отговор 3", Correct = 0, WrongText = "" }; List <Answer> answers = new List <Answer> { answer, answer2, answer3 }; Question question = new Question { Answers = answers, Id = 1, QuestionText = "Въпрос", Score = 2, WrongText = "" }; List <Question> questions = new List <Question> { question }; var questionResponse = new QuestionResponse { Id = 1, Question = question, SelectedAnswers = new List <Answer> { answer }, TextAnswer = "" }; List <QuestionResponse> questionResponses = new List <QuestionResponse> { questionResponse }; Score score = new Score { Id = 1, CurrentScore = 2, MaxScore = 2, Note = "" }; Test test = new Test { Id = 1, Test_Name = "Начално ниво", Questions = questions }; Answer answer4 = new Answer { Id = 4, AnswerText = "Отговор 4", Correct = 0, WrongText = "" }; Answer answer5 = new Answer { Id = 5, AnswerText = "Отговор 5", Correct = 1, WrongText = "" }; Answer answer6 = new Answer { Id = 6, AnswerText = "Отговор 6", Correct = 0, WrongText = "" }; List <Answer> answers2 = new List <Answer> { answer4, answer5, answer6 }; Question question2 = new Question { Answers = answers2, Id = 2, QuestionText = "Въпрос", Score = 2, WrongText = "" }; List <Question> questions2 = new List <Question> { question2 }; var questionResponse2 = new QuestionResponse { Id = 2, Question = question2, SelectedAnswers = new List <Answer> { answer5 }, TextAnswer = "" }; List <QuestionResponse> questionResponses2 = new List <QuestionResponse> { questionResponse2 }; Score score2 = new Score { Id = 2, CurrentScore = 2, MaxScore = 2, Note = "" }; Test test2 = new Test { Id = 2, Test_Name = "Средно ниво", Questions = questions2 }; var answerSheet = new AnswerSheet { Id = 0, QuestionResponses = questionResponses, Score = score, Test = test, UserId = "1", UserName = "******" }; var answerSheet2 = new AnswerSheet { Id = 0, QuestionResponses = questionResponses2, Score = score2, Test = test2, UserId = "1", UserName = "******" }; var data = new List <AnswerSheet> { answerSheet }.AsQueryable(); var mockSet = new Mock <DbSet <AnswerSheet> >(); mockSet.As <IQueryable <AnswerSheet> >().Setup(m => m.Provider).Returns(data.Provider); mockSet.As <IQueryable <AnswerSheet> >().Setup(m => m.Expression).Returns(data.Expression); mockSet.As <IQueryable <AnswerSheet> >().Setup(m => m.ElementType).Returns(data.ElementType); mockSet.As <IQueryable <AnswerSheet> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator()); var mockContext = new Mock <Brainzzler_DBContext>(); mockContext.Setup(set => set.AnswerSheet).Returns(mockSet.Object); //act var controller = new AnswerSheetsController(mockContext.Object); controller.PutAnswerSheet(0, answerSheet2); mockContext.Object.SaveChanges(); //assert Assert.AreEqual(answerSheet2, mockContext.Object.AnswerSheet.Find(0)); }
public static string Request(string word, out char answer) { List <string> cache = new List <string> { word }; answer = 'A'; if (CacheWord.Check(word, "Synonyms")) { return(AnswerSheet.GenerateChoices((Utility.ShuffleElements(CacheWord.Read(word, "Synonyms"))), word, out answer)); } string url = "https://od-api.oxforddictionaries.com:443/api/v1/entries/en/" + word + "/synonyms"; // URL for the request HttpClient client = new HttpClient(); // creates an HTTP Client HttpResponseMessage response = new HttpResponseMessage(); // used to get the API Response client.BaseAddress = new Uri(url); // sets the client address to the specified url client.DefaultRequestHeaders.Add("app_id", TestGeneratorForm.appId); // adds the id to the headers client.DefaultRequestHeaders.Add("app_key", TestGeneratorForm.appKey); // adds the key to the headers try { response = client.GetAsync(url).Result; }// gets the respone headers catch (Exception) { MessageBox.Show("Unable to connect to the internet. Restart the program with internet connectivity at least once!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } if (response.IsSuccessStatusCode) { string content = response.Content.ReadAsStringAsync().Result; // receives the API response var result = JsonConvert.DeserializeObject <GetResponse>(content); // Converts the API response to the format that the program can understand for (int i = 0; i < result.Results.First().LexicalEntries.Length; i++) // i = all entries from the API response { for (int j = 0; j < result.Results.First().LexicalEntries[i].Entries.Length; j++) // j = all senses from the API response { for (int k = 0; k < result.Results.First().LexicalEntries[i].Entries[j].Senses.Length; k++) // k = all examples from the API response { if (result.Results.First().LexicalEntries[i].Entries[j].Senses[k].Synonyms != null) { for (int l = 0; l < result.Results.First().LexicalEntries[i].Entries[j].Senses[k].Synonyms.Length; l++) { cache.Add(result.Results.First().LexicalEntries[i].Entries[j].Senses[k].Synonyms[l].Text); } } if (result.Results.First().LexicalEntries[i].Entries[j].Senses[k].Subsenses != null) // checks if there is at least one subsense in the current sense { for (int l = 0; l < result.Results.First().LexicalEntries[i].Entries[j].Senses[k].Subsenses.Length; l++) { for (int m = 0; m < result.Results.First().LexicalEntries[i].Entries[j].Senses[k].Subsenses[l].Synonyms.Length; m++) { cache.Add(result.Results.First().LexicalEntries[i].Entries[j].Senses[k].Subsenses[l].Synonyms[m].Text); } } } } } } int remove = Math.Max(1, cache.Count() - 4); cache.RemoveRange(1, remove); cache = Utility.ShuffleElements(cache); CacheWord.Write(word, "Synonyms", cache); return(AnswerSheet.GenerateChoices(cache, word, out answer)); } else // if the response code is different than 200 { if (response.StatusCode.ToString() == "Forbidden") { Utility.GetNewCredentials(); Request(word, out answer); } return("ERROR \nCouldn't find " + word + " Status: " + response.StatusCode); // error while trying to access the API } }
private void QuizScreenUserControl_KeyUp(object sender, Avalonia.Input.KeyEventArgs e) { e.Route = Avalonia.Interactivity.RoutingStrategies.Tunnel; UserControl quizUserControl = (UserControl)sender; QuizScreenViewModel dataContext = (QuizScreenViewModel)quizUserControl.DataContext; Avalonia.Input.Key pressedKey = e.Key; int pressedKeyIntCode = (int)pressedKey; if (pressedKey == Avalonia.Input.Key.Space || pressedKey == Avalonia.Input.Key.NumPad0) { dataContext.ShowAnswers(); } else if (pressedKey == Avalonia.Input.Key.Right || pressedKey == Avalonia.Input.Key.Enter) { dataContext.NextQuestion(); } else if (pressedKey == Avalonia.Input.Key.Escape) { dataContext.TerminateQuiz(); } else { // Select answer based on what number I pressed on the keyboard // CHECK: Is the quiz ended? if (dataContext.CurrentQuiz.GetUnansweredQuestion() is null) { return; } // 35 - "1" on keyboard, 43 - "9" on keyboard bool keyboardNumberPressed = (pressedKeyIntCode >= 35 && pressedKeyIntCode <= 43); // 75 - "1" on numeric keypad, 83 - "9" on numeric keypad bool numpadNumberPressed = (pressedKeyIntCode >= 75 && pressedKeyIntCode <= 83); if (keyboardNumberPressed || numpadNumberPressed) { // int choosedAnswerNumber = keyboardNumberPressed ? pressedKeyIntCode - 34 : pressedKeyIntCode - 74; ListBox answersListbox = this.FindControl <ListBox>("lst_answers"); List <AnswerSheet> answerList = (List <AnswerSheet>)answersListbox.Items; if (!(choosedAnswerNumber > answerList.Count)) { int choosedAnswerListIndex = choosedAnswerNumber - 1; AnswerSheet choosedAnswerSheet = answerList[choosedAnswerListIndex]; if (answersListbox.SelectedItems.Contains(choosedAnswerSheet)) { answersListbox.SelectedItems.Remove(choosedAnswerSheet); } else { answersListbox.SelectedItems.Add(choosedAnswerSheet); UncheckOverreplies(); } dataContext.SelectedAnswers = answersListbox.SelectedItems; } } } // Got focus again on the whole UserControl UserControl quizScreenUserControl = this.FindControl <UserControl>("quizScreenUserControl"); quizScreenUserControl.Focus(); e.Handled = true; }