private void GetStatisticsForLoggedUser()
        {
            using (var ctx = new TestingSystemModel())
            {
                IRepository <Test>       testRepository       = RepositoryFactory.Get <Test>();
                IRepository <Discipline> disciplineRepository = RepositoryFactory.Get <Discipline>();
                IQueryable <Test>        query = testRepository.FindBy(test => test.user_id == MainWindowVM.CurrentUser.id, ctx);

                Statistics.TestsCount = query.Count();
                List <Test> testList = query.ToList();

                var dict = new Dictionary <Test, int>();
                foreach (Test test in testList)
                {
                    if (test.questions.Count > 0)
                    {
                        dict.Add(test, test.questions.ElementAt(0).discipline_id);
                    }
                }

                var res    = dict.GroupBy(x => x.Value).ToDictionary(x => x.Key, x => x.Count());
                var result = res.OrderByDescending(r => r.Value).First();

                Statistics.MostTestedDiscipline = disciplineRepository.FindById(result.Key).name;
            }
        }
Exemple #2
0
        public int SubmitTest()
        {
            int testId;

            using (var ctx = new TestingSystemModel())
            {
                IRepository <Test> testRepository = RepositoryFactory.Get <Test>();

                Test newTest = new Test();

                newTest.questions = QuestionInfo.TestQuestions;
                foreach (Question q in newTest.questions)
                {
                    ctx.Questions.Attach(q);
                }
                newTest.user_id = MainWindowVM.CurrentUser.id;
                newTest.score   = results.TestScore;
                testRepository.Add(newTest, ctx);



                testId = testRepository.FindBy(test => test.user_id == newTest.user_id, ctx).OrderByDescending(test => test.id).FirstOrDefault().id;
            }

            timer.Stop();

            return(testId);
        }
Exemple #3
0
        private List <Discipline> PopulateComboBox()
        {
            IRepository <Discipline> disciplineRepository = RepositoryFactory.Get <Discipline>();

            using (var ctx = new TestingSystemModel())
            {
                return(disciplineRepository.FindBy(discipline => true, ctx).ToList());
            }
        }
Exemple #4
0
        private void GetQuestionsByDiscipline(int selectionID)
        {
            IRepository <Question> questionRepository = RepositoryFactory.Get <Question>();

            using (var ctx = new TestingSystemModel())
            {
                QuestionInfo.Questions = questionRepository
                                         .FindBy((question => question.discipline_id == selectionID), ctx)
                                         .ToList();
            }
            QuestionInfo.TestQuestions = new List <Question>();
        }
Exemple #5
0
        public void SaveQuestions()
        {
            IRepository <Question> questionRepository = RepositoryFactory.Get <Question>();

            using (var ctx = new TestingSystemModel())
            {
                foreach (UnsavedQuestion u in AddQuestionInfo.Questions)
                {
                    ctx.Disciplines.Attach(u.SelectedDiscipline);
                    questionRepository.Add(ConvertToQuestion(u), ctx);
                }
            }
        }
        public void PrintTest(int id)
        {
            Test test = null;
            IRepository <Test> testRepository = RepositoryFactory.Get <Test>();

            using (var ctx = new TestingSystemModel())
            {
                test = ctx.Tests.Find(id);
                ctx.Entry(test).Collection(t => t.questions).Load();
            }


            using (StreamWriter file = new StreamWriter(fileName))
            {
                file.WriteLine("===============================");
                foreach (Question q in test.questions)
                {
                    file.WriteLine(q.ToString());
                    file.WriteLine("===============================");
                }
            }
        }
        public BaseVM Authenticate(LoginModel loginInfo)
        {
            loginInfo.Password = BoundPasswordBox.Password;
            IRepository <User> userRepository = RepositoryFactory.Get <User>();
            User userInDB = null;

            using (var ctx = new TestingSystemModel())
            {
                userInDB = userRepository.FindBy(user => user.nickname.Equals(loginInfo.Username), ctx).FirstOrDefault();
            }
            if (userInDB != null && userInDB.password.Equals(loginInfo.Password))
            {
                MainWindowVM.CurrentUser = userInDB;
                BaseVM result = new TestSetupVM();
                result.ResourceName = "setup";
                return(result);
            }
            else
            {
                BaseVM result = new LoginVM(loginInfo, "Проблем с автентикацията на потребителя!!!");
                result.ResourceName = "login";
                return(result);
            }
        }