Imagara 2 年之前
父節點
當前提交
b26d001ed6

+ 16 - 0
MyTests/Functions.cs

@@ -64,5 +64,21 @@ namespace MyTests
                 return string.Concat(hash.ComputeHash(Encoding.UTF8.GetBytes(password)).Select(x => x.ToString("X2")));
             }
         }
+        public static int CorrectAnswersCounter(Tests test, Users user)
+        {
+            Quest.Answer = cdb.db.Questions.Where(item => item.IdTest == test.IdTest).Select(it => it.Answer).ToArray();
+            Quest.UserAnswer = cdb.db.Answers.Where(item => item.Users.IdUser == user.IdUser && item.Questions.IdTest == test.IdTest).Select(it => it.Answer).ToArray();
+            int value = 0;
+            if (Quest.Answer.Length == Quest.UserAnswer.Length)
+                for (int i = 0; i < Quest.Answer.Length; i++)
+                    if (Quest.Answer[i] == Quest.UserAnswer[i])
+                        value++;
+            return value;
+        }
+        public static class Quest
+        {
+            public static string[] Answer;
+            public static string[] UserAnswer;
+        }
     }
 }

+ 1 - 18
MyTests/Pages/CheckTestResultsCatalog.xaml.cs

@@ -23,7 +23,7 @@ namespace MyTests.Pages
                 {
                     AnswerClass newUserAnswer = new AnswerClass();
                     newUserAnswer.User = user;
-                    newUserAnswer.Correct = CorrectAnswersCounter(_test, user);
+                    newUserAnswer.Correct = Functions.CorrectAnswersCounter(_test, user);
                     newUserAnswer.Count = cdb.db.Questions.Where(item => item.IdTest == _test.IdTest).Count();
 
                     answerList.Add(newUserAnswer);
@@ -35,17 +35,6 @@ namespace MyTests.Pages
                 ResultLabel.Content = "На данный момент тест еще никто не прошел.";
 
         }
-        public int CorrectAnswersCounter(Tests test, Users user)
-        {
-            Quest.Answer = cdb.db.Questions.Where(item => item.IdTest == test.IdTest).Select(it => it.Answer).ToArray();
-            Quest.UserAnswer = cdb.db.Answers.Where(item => item.Users.IdUser == user.IdUser && item.Questions.IdTest == test.IdTest).Select(it => it.Answer).ToArray();
-            int value = 0;
-            if (Quest.Answer.Length == Quest.UserAnswer.Length)
-                for (int i = 0; i < Quest.Answer.Length; i++)
-                    if (Quest.Answer[i] == Quest.UserAnswer[i])
-                        value++;
-            return value;
-        }
 
         private void AnswersListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
         {
@@ -60,12 +49,6 @@ namespace MyTests.Pages
         {
             NavigationService.GoBack();
         }
-
-        public static class Quest
-        {
-            public static string[] Answer;
-            public static string[] UserAnswer;
-        }
         public class AnswerClass
         {
             public Users User { get; set; }

+ 2 - 3
MyTests/Pages/RegistrationPage.xaml.cs

@@ -1,5 +1,4 @@
-using System;
-using System.Linq;
+using System.Linq;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Navigation;
@@ -44,7 +43,7 @@ namespace MyTests.Pages
                         Patronymic = fio[2]
                     };
                     cdb.db.Users.Add(newUser);
-                    cdb.db.SaveChanges(); ;
+                    cdb.db.SaveChanges();
                     new ErrorWindow("Успешная регистрация").ShowDialog();
                 }
             }

+ 3 - 59
MyTests/Pages/TestsCatalog.xaml.cs

@@ -80,9 +80,9 @@ namespace MyTests.Pages
         {
             try
             {
-                if (((Tests)TestsListBox.SelectedItem) != null)
+                if (((TestsClass)TestsListBox.SelectedItem) != null)
                 {
-                    Tests thisTest = cdb.db.Tests.Where(item => item.IdTest == ((Tests)TestsListBox.SelectedItem).IdTest).FirstOrDefault();
+                    Tests thisTest = cdb.db.Tests.Where(item => item.IdTest == ((TestsClass)TestsListBox.SelectedItem).test.IdTest).FirstOrDefault();
 
                     if (!thisTest.CanAgain && cdb.db.Answers.Where(item => item.Questions.Tests.IdTest == thisTest.IdTest).Select(item => item.IdUser).Contains(Session.User.IdUser) && Session.User.IdUser != thisTest.IdUser)
                         new ErrorWindow("Этот тест не может быть пройден повторно.").ShowDialog();
@@ -109,60 +109,4 @@ namespace MyTests.Pages
             public BitmapImage testImage { get; set; }
         }
     }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-//拯救我们被关在地下室
+}

+ 2 - 2
UnitTestProject/UnitTest1.cs

@@ -1,6 +1,5 @@
 using Microsoft.VisualStudio.TestTools.UnitTesting;
 using MyTests;
-using MyTests.Pages;
 using System.Linq;
 
 namespace UnitTestProject
@@ -69,13 +68,14 @@ namespace UnitTestProject
             Assert.IsFalse(Functions.IsValidLength("Вф"));
             Assert.IsFalse(Functions.IsValidLength(""));
         }
+        [TestMethod]
         public void CorrectAnswersCounterTest()
         {
             int testId = 1;
             int userId = 1;
             int expected = 1;
             
-            Assert.AreEqual(new CheckTestResultsCatalog(null).CorrectAnswersCounter(cdb.db.Tests.Where(item => item.IdTest == testId).FirstOrDefault(),
+            Assert.AreEqual(Functions.CorrectAnswersCounter(cdb.db.Tests.Where(item => item.IdTest == testId).FirstOrDefault(),
                 cdb.db.Users.Where(item => item.IdUser == userId).FirstOrDefault()),
                 expected); 
         }