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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }