示例#1
0
        public void SeekReaderForwardToMatchByteSignature_WhenByteSignatureNullOrEmpty_Throws(byte[] byteSignature)
        {
            using (var test = new ReadTest())
            {
                var exception = Assert.Throws <ArgumentException>(
                    () => SignedPackageArchiveIOUtility.SeekReaderForwardToMatchByteSignature(
                        test.Reader,
                        byteSignature));

                Assert.Equal("byteSignature", exception.ParamName);
                Assert.Equal(0, test.Reader.BaseStream.Position);
            }
        }
示例#2
0
        public void SeekReaderForwardToMatchByteSignature_WhenInitialPositionAtStartAndByteSignatureNotFound_Throws()
        {
            using (var test = new ReadTest())
            {
                var byteSignature = new byte[] { 3, 2 };

                Assert.Throws <InvalidDataException>(
                    () => SignedPackageArchiveIOUtility.SeekReaderForwardToMatchByteSignature(
                        test.Reader,
                        byteSignature));

                Assert.Equal(0, test.Reader.BaseStream.Position);
            }
        }
示例#3
0
        public void SeekReaderForwardToMatchByteSignature_WhenByteSignatureNotFound_MessageContainsByteSignature()
        {
            using (var test = new ReadTest())
            {
                var byteSignature = new byte[] { 6, 7 };

                var exception = Assert.Throws <InvalidDataException>(
                    () => SignedPackageArchiveIOUtility.SeekReaderForwardToMatchByteSignature(
                        test.Reader,
                        byteSignature));

                Assert.Contains(BitConverter.ToString(byteSignature).Replace("-", ""), exception.Message);
                Assert.Equal(0, test.Reader.BaseStream.Position);
            }
        }
示例#4
0
        public void SeekReaderBackwardToMatchByteSignature_WhenInitialPositionNearEndAndByteSignatureNotFound_Throws()
        {
            using (var test = new ReadTest())
            {
                var byteSignature = new byte[] { 3, 2 };

                test.Reader.BaseStream.Seek(offset: -byteSignature.Length, origin: SeekOrigin.End);

                Assert.Throws <InvalidDataException>(
                    () => SignedPackageArchiveIOUtility.SeekReaderBackwardToMatchByteSignature(
                        test.Reader,
                        byteSignature));

                Assert.Equal(4, test.Reader.BaseStream.Position);
            }
        }
示例#5
0
        public void SeekReaderForwardToMatchByteSignature_WhenInitialPositionAtStartAndByteSignatureAtEnd_Seeks()
        {
            using (var test = new ReadTest())
            {
                var byteSignature = new byte[] { 4, 5 };

                test.Reader.BaseStream.Seek(offset: 0, origin: SeekOrigin.Begin);

                SignedPackageArchiveIOUtility.SeekReaderForwardToMatchByteSignature(test.Reader, byteSignature);

                Assert.Equal(4, test.Reader.BaseStream.Position);

                var actual = test.Reader.ReadBytes(byteSignature.Length);

                Assert.Equal(byteSignature, actual);
            }
        }
示例#6
0
        public void SeekReaderBackwardToMatchByteSignature_WhenInitialPositionNearEndAndByteSignatureAtStart_Seeks()
        {
            using (var test = new ReadTest())
            {
                var byteSignature = new byte[] { 0, 1 };

                test.Reader.BaseStream.Seek(offset: -byteSignature.Length, origin: SeekOrigin.End);

                SignedPackageArchiveIOUtility.SeekReaderBackwardToMatchByteSignature(test.Reader, byteSignature);

                Assert.Equal(0, test.Reader.BaseStream.Position);

                var actual = test.Reader.ReadBytes(byteSignature.Length);

                Assert.Equal(byteSignature, actual);
            }
        }
示例#7
0
        public void SeekReaderBackwardToMatchByteSignature_WhenInitialPositionAtEnd_Throws()
        {
            using (var test = new ReadTest())
            {
                var byteSignature = new byte[] { 2, 3 };

                test.Reader.BaseStream.Seek(offset: 0, origin: SeekOrigin.End);

                var exception = Assert.Throws <ArgumentOutOfRangeException>(
                    () => SignedPackageArchiveIOUtility.SeekReaderBackwardToMatchByteSignature(
                        test.Reader,
                        byteSignature));

                Assert.Equal("byteSignature", exception.ParamName);
                Assert.Equal(test.Reader.BaseStream.Length, test.Reader.BaseStream.Position);
            }
        }
        public void LoadTest(string username)
        {
            DataTable dt = new DataTable();
            Exam      ex = new Exam();

            dt = ex.GetExam(username);

            string xml = "";

            foreach (DataRow col in dt.Rows)
            {
                xml = col["xml"].ToString();
            }

            XmlSerializer ser = new XmlSerializer(typeof(ReadTest));

            using (var reader = new StringReader(xml))
            {
                ReadTest item  = (ReadTest)ser.Deserialize(reader);
                TableRow tr    = null;
                TableRow tr2   = null;
                int      total = 1;
                int      countCorrectAnswers = 0; // Totalt antal rätt svar
                int      etik = 0, produkt = 0, ekonomi = 0;
                int      etikTot = 0, produktTot = 0, ekonomiTot = 0;

                //HtmlGenericControl div = new HtmlGenericControl("div");
                //div.InnerHtml = "<table Class=\"showExamTable\">";
                //div.InnerHtml += "<tr><th>#</th><th>Fråga</th><th>Rätt svar</th><th>Ditt svar</th></tr>";

                foreach (var it in item.Kategori)
                {
                    tr2 = new TableRow();

                    TableCell empt  = new TableCell();
                    TableCell kat   = new TableCell();
                    TableCell katnr = new TableCell();

                    kat.Font.Bold   = true;
                    katnr.Font.Bold = true;

                    kat.Text         = "Kategori: " + it.Kategorityp + "";
                    katnr.Text       = "Frågor i kategori: " + it.Fråga.Count + "";
                    katnr.ColumnSpan = 2;

                    empt.BackColor  = System.Drawing.Color.FromName("#BDBDBD");
                    kat.BackColor   = System.Drawing.Color.FromName("#BDBDBD");
                    katnr.BackColor = System.Drawing.Color.FromName("#BDBDBD");

                    //div.InnerHtml += "<tr><td></td><td class=\"kategory\">Kategori: " + it.Kategorityp + "</td>";
                    //div.InnerHtml += "<td colspan=\"2\" class=\"kategory\">frågor i kategori: " + it.Fråga.Count + "</td></tr>";

                    tr2.Cells.Add(empt);
                    tr2.Cells.Add(kat);
                    tr2.Cells.Add(katnr);

                    ExamTable.Rows.Add(tr2);

                    foreach (var kategori in it.Fråga)
                    {
                        tr = new TableRow();

                        TableCell questionNumber = new TableCell();
                        TableCell question       = new TableCell();
                        TableCell correctAnswer  = new TableCell();
                        TableCell selectedAnswer = new TableCell();

                        questionNumber.Text = total.ToString();
                        question.Text       = kategori.Text;
                        correctAnswer.Text  = kategori.RättSvar;
                        selectedAnswer.Text = kategori.MarkeratSvar;

                        questionNumber.BackColor = System.Drawing.Color.FromName("#BDBDBD");
                        question.BackColor       = System.Drawing.Color.FromName("#BDBDBD");
                        correctAnswer.BackColor  = System.Drawing.Color.FromName("#BDBDBD");

                        //div.InnerHtml += "<tr>";
                        //div.InnerHtml += "<td>" + total + "</td>";
                        //div.InnerHtml += "<td>" + kategori.Text + "</td>";
                        //div.InnerHtml += "<td>" + kategori.RättSvar + "</td>";

                        if (kategori.RättSvar == kategori.MarkeratSvar)
                        {
                            selectedAnswer.BackColor = System.Drawing.Color.FromName("#62983c");
                            selectedAnswer.ForeColor = System.Drawing.Color.FromName("#ffffff");
                            //div.InnerHtml += "<td class=\"tdcorrect\">";
                            countCorrectAnswers++;
                            if (it.Kategorityp == "Etik")
                            {
                                etik++;
                            }
                            if (it.Kategorityp == "Produkt")
                            {
                                produkt++;
                            }
                            if (it.Kategorityp == "Ekonomi")
                            {
                                ekonomi++;
                            }
                        }
                        else
                        {
                            selectedAnswer.BackColor = System.Drawing.Color.FromName("#F44336");
                            selectedAnswer.ForeColor = System.Drawing.Color.FromName("#ffffff");
                        }
                        //    div.InnerHtml += "<td class=\"tdfail\">";

                        //div.InnerHtml += kategori.MarkeratSvar + "</td>";
                        //div.InnerHtml += "</tr>";

                        if (it.Kategorityp == "Etik")
                        {
                            etikTot++;
                        }
                        if (it.Kategorityp == "Produkt")
                        {
                            produktTot++;
                        }
                        if (it.Kategorityp == "Ekonomi")
                        {
                            ekonomiTot++;
                        }

                        total++;

                        //if (countCorrectAnswers >= ((i - 1) * 0.7))
                        //{
                        //    Label1.Text = "Du har svarat rätt på " + countCorrectAnswers.ToString() + " av " + (i - 1).ToString() + " frågor. Du är godkänd!";
                        //}
                        //else
                        //{
                        //    Label1.ForeColor = System.Drawing.Color.FromName("#F44336");
                        //    Label1.Text = "Du har svarat rätt på " + countCorrectAnswers.ToString() + " av " + (i - 1).ToString() + " frågor. Du är tyvärr underkänd!";
                        //}
                        //showExamTable.Rows.Add(tr);

                        tr.Cells.Add(questionNumber);
                        tr.Cells.Add(question);
                        tr.Cells.Add(correctAnswer);
                        tr.Cells.Add(selectedAnswer);

                        ExamTable.Rows.Add(tr);
                    }
                }
                //div.InnerHtml += "</table>";
                //testresult.Controls.Add(div);

                //HtmlGenericControl divTitle = new HtmlGenericControl("div");

                int totalpercent = countCorrectAnswers * 100 / total;
                int etikpercent    = etik * 100 / etikTot;
                int produktpercent = produkt * 100 / produktTot;
                int ekonomipercent = ekonomi * 100 / ekonomiTot;

                bool succsess = false;
                ////string

                // Test if test is successful
                if (totalpercent >= 70 && etikpercent >= 60 && produktpercent >= 60 && ekonomipercent >= 60)
                {
                    succsess = true;
                }

                if (succsess == true)
                {
                    Label1.Text = "Du har svarat rätt på " + countCorrectAnswers.ToString() + " av " + (total - 1).ToString() + " frågor. Du är  godkänd!";
                    Label2.Text = "Etik: " + etik + " av " + etikTot + ", " + etikpercent + "%.";
                    Label3.Text = "Produkt: " + produkt + " av " + produktTot + ", " + produktpercent + "%.";
                    Label4.Text = "Ekonomi: " + ekonomi + " av " + ekonomiTot + ", " + ekonomipercent + "%.";

                    User pass = new User();
                    pass.updateLicense((string)Session["username"], true);
                }
                else
                {
                    Label1.ForeColor = System.Drawing.Color.FromName("#F44336");
                    Label2.ForeColor = System.Drawing.Color.FromName("#F44336");
                    Label3.ForeColor = System.Drawing.Color.FromName("#F44336");
                    Label4.ForeColor = System.Drawing.Color.FromName("#F44336");

                    Label1.Text = "Du har svarat rätt på " + countCorrectAnswers.ToString() + " av " + (total - 1).ToString() + " frågor. Du är underkänd!";
                    Label2.Text = "Etik: " + etik + " av " + etikTot + ", " + etikpercent + "%.";
                    Label3.Text = "Produkt: " + produkt + " av " + produktTot + ", " + produktpercent + "%.";
                    Label4.Text = "Ekonomi: " + ekonomi + " av " + ekonomiTot + ", " + ekonomipercent + "%.";

                    User fail = new User();
                    fail.updateLicense((string)Session["username"], false);
                }

                //if (succsess == true)
                //    divTitle.InnerHtml += "<div class=\"label\">Grattis du har klarat provet.</div>";
                //else
                //    divTitle.InnerHtml += "<div class=\"label\">Du är tyvärr underkänd på provet.</div>";

                //divTitle.InnerHtml += "<div class=\"label-sm\">Du har svarat på " + total + " frågot och svarade rätt på " + countCorrectAnswers + " frågor." + totalpercent + "%</div>";
                //divTitle.InnerHtml += "<div class=\"label-sm\">I kategorin Etik svarade du rätt på " + etik + " frågor. " + etikpercent + " %</div>";
                //divTitle.InnerHtml += "<div class=\"label-sm\">I kategorin Produkt svarade du rätt på " + produkt + " frågor. " + produktpercent + "%</div>";
                //divTitle.InnerHtml += "<div class=\"label-sm\">I kategorin Ekonomi svarade du rätt på " + ekonomi + " frågor. " + ekonomipercent + "%</div>";

                //testTitle.Controls.Add(divTitle);
            }
        }
        public void LoadTest(string username)
        {
            DataTable dt = new DataTable();
            Exam      ex = new Exam();

            dt = ex.GetExam(username);

            string xml = "";

            foreach (DataRow col in dt.Rows)
            {
                xml = col["xml"].ToString();
            }

            XmlSerializer ser = new XmlSerializer(typeof(ReadTest));

            using (var reader = new StringReader(xml))
            {
                ReadTest item  = (ReadTest)ser.Deserialize(reader);
                int      total = 0;
                int      countCorrectAnswers = 0; // Totalt antal rätt svar
                int      etik = 0, produkt = 0, ekonomi = 0;
                int      etikTot = 0, produktTot = 0, ekonomiTot = 0;

                HtmlGenericControl div = new HtmlGenericControl("div");
                div.InnerHtml  = "<table Class=\"showExamTable\">";
                div.InnerHtml += "<tr><th>#</th><th>Fråga</th><th>Rätt svar</th><th>Ditt svar</th></tr>";

                int totalpercent = 0, etikpercent = 0, produktpercent = 0, ekonomipercent = 0;

                foreach (var it in item.Kategori)
                {
                    div.InnerHtml += "<tr><td class=\"tdstd\"></td><td class=\"kategory tdstd\">Kategori: " + it.Kategorityp + "</td>";
                    div.InnerHtml += "<td colspan=\"2\" class=\"kategory tdstd\">frågor i kategori: " + it.Fråga.Count + "</td></tr>";
                    int row = total + 1;

                    foreach (var kategori in it.Fråga)
                    {
                        div.InnerHtml += "<tr>";
                        div.InnerHtml += "<td class=\"tdstd\">" + row + "</td>";
                        div.InnerHtml += "<td class=\"tdstd\">" + kategori.Text + "</td>";
                        div.InnerHtml += "<td class=\"tdstd\">" + kategori.RättSvar + "</td>";

                        if (kategori.RättSvar == kategori.MarkeratSvar)
                        {
                            div.InnerHtml += "<td class=\"tdcorrect\">";
                            countCorrectAnswers++;
                            if (it.Kategorityp == "Etik")
                            {
                                etik++;
                            }
                            if (it.Kategorityp == "Produkt")
                            {
                                produkt++;
                            }
                            if (it.Kategorityp == "Ekonomi")
                            {
                                ekonomi++;
                            }
                        }
                        else
                        {
                            div.InnerHtml += "<td class=\"tdfail\">";
                        }

                        div.InnerHtml += kategori.MarkeratSvar + "</td>";
                        div.InnerHtml += "</tr>";

                        if (it.Kategorityp == "Etik")
                        {
                            etikTot++;
                        }
                        if (it.Kategorityp == "Produkt")
                        {
                            produktTot++;
                        }
                        if (it.Kategorityp == "Ekonomi")
                        {
                            ekonomiTot++;
                        }

                        row++;
                        total++;
                    }
                }
                div.InnerHtml += "</table>";
                testresult.Controls.Add(div);

                HtmlGenericControl divTitle = new HtmlGenericControl("div");

                if (total != 0)
                {
                    totalpercent = countCorrectAnswers * 100 / total;
                }
                if (etikTot != 0)
                {
                    etikpercent = etik * 100 / etikTot;
                }
                if (produktTot != 0)
                {
                    produktpercent = produkt * 100 / produktTot;
                }
                if (ekonomiTot != 0)
                {
                    ekonomipercent = ekonomi * 100 / ekonomiTot;
                }

                bool succsess = false;

                // Test if test is successful
                if (totalpercent >= 70 && etikpercent >= 60 && produktpercent >= 60 && ekonomipercent >= 60)
                {
                    succsess = true;
                }
                if (succsess == true)
                {
                    divTitle.InnerHtml += "<div class=\"label\">Grattis du har klarat provet.</div>";
                    divTitle.InnerHtml += "<div class=\"label-sm\">Du har svarat på " + total + " frågot och svarade rätt på " + countCorrectAnswers + " frågor. " + totalpercent + "%</div>";
                    divTitle.InnerHtml += "<div class=\"label-sm\">I kategorin Etik svarade du rätt på " + etik + " frågor. " + etikpercent + " %</div>";
                    divTitle.InnerHtml += "<div class=\"label-sm\">I kategorin Produkt svarade du rätt på " + produkt + " frågor. " + produktpercent + "%</div>";
                    divTitle.InnerHtml += "<div class=\"label-sm\">I kategorin Ekonomi svarade du rätt på " + ekonomi + " frågor. " + ekonomipercent + "%</div>";
                }
                else
                {
                    divTitle.InnerHtml += "<div class=\"label-fail\">Du är tyvärr underkänd på provet.</div>";
                    divTitle.InnerHtml += "<div class=\"label-sm-fail\">Du har svarat på " + total + " frågot och svarade rätt på " + countCorrectAnswers + " frågor. " + totalpercent + "%</div>";
                    divTitle.InnerHtml += "<div class=\"label-sm-fail\">I kategorin Etik svarade du rätt på " + etik + " frågor. " + etikpercent + " %</div>";
                    divTitle.InnerHtml += "<div class=\"label-sm-fail\">I kategorin Produkt svarade du rätt på " + produkt + " frågor. " + produktpercent + "%</div>";
                    divTitle.InnerHtml += "<div class=\"label-sm-fail\">I kategorin Ekonomi svarade du rätt på " + ekonomi + " frågor. " + ekonomipercent + "%</div>";
                }
                testTitle.Controls.Add(divTitle);
            }
        }