Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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); });
        }
Ejemplo n.º 5
0
 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());
        }
Ejemplo n.º 7
0
        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");
        }
Ejemplo n.º 8
0
        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);
                }
            }
        }
Ejemplo n.º 9
0
 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);
     }
 }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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();
        }
Ejemplo n.º 12
0
        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();
            }
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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 }));
        }
Ejemplo n.º 15
0
 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);
 }
Ejemplo n.º 16
0
        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);
                }
            }
        }
Ejemplo n.º 17
0
        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;
            }
        }
Ejemplo n.º 18
0
        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" }));
        }
Ejemplo n.º 19
0
        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;
                }
            }
        }
Ejemplo n.º 20
0
 private void initAnswerSheetTimer(AnswerSheet answerSheet, Exam exam)
 {
     mLeftTime = exam.Time - (DateTime.Now - answerSheet.CreatedAt).TotalMinutes;
     timerAnswerSheet.Interval = 1000;
     timerAnswerSheet.Start();
 }
Ejemplo n.º 21
0
        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"));
        }
Ejemplo n.º 22
0
        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;
                }
            }
        }
Ejemplo n.º 23
0
        /// <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\"}");
        }
Ejemplo n.º 24
0
        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));
        }
Ejemplo n.º 26
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
            }
        }
Ejemplo n.º 27
0
        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;
        }