public void GetTestEditModelUnit()
        {
            var managerMock = new DataManagerMock(new AnswersRepositoryMock(), new QuestionsRepositoryMock(),
                                                  new TestsRepositoryMock(), new StatisticRepositoryMock(), new UsersRepositoryMock(),
                                                  new WrittenLetterRepositoryMock());

            var testService = new TestService(managerMock);

            TestEditModel model = new TestEditModel()
            {
                testId = 1, Title = "TEST1", Description = "DESC1", CodeLock = "111"
            };
            TestEditModel model2 = new TestEditModel();

            const int testId     = 1;
            const int zeroTestId = 0;

            var actual           = testService.GetTestEditModel(testId);
            var actualWithZeroId = testService.GetTestEditModel(zeroTestId);

            Assert.Equal(actual.testId, model.testId);
            Assert.Equal(actual.Title, model.Title);

            Assert.Equal(actualWithZeroId.testId, model2.testId);
            Assert.Equal(actualWithZeroId.Title, model2.Title);
        }
Example #2
0
        public int SaveTestFromViewIntoDb(TestEditModel model, string ownerEmail)
        {
            Test test;

            if (model.testId != 0)
            {
                test             = this.dataManager.Tests.GetTestById(model.testId);
                test.Name        = model.Title;
                test.Description = model.Description;
                test.CodeLock    = model.CodeLock;
            }
            else
            {
                string userId = this.dataManager.Users.GetIdByEmail(ownerEmail);
                test = new Test()
                {
                    Name        = model.Title,
                    Description = model.Description,
                    CodeLock    = model.CodeLock,
                    UserId      = userId,
                };
            }

            this.dataManager.Tests.SaveTest(test);

            return(test.Id);
        }
Example #3
0
        public RedirectToActionResult CreateTest(TestEditModel _model)
        {
            string adminName = User.Identity.Name;
            int    testId    = _serviceManager.Tests.SetTestEditModelIntoDb(_model, adminName);

            return(RedirectToAction("StartCreateQuestion", new { testId }));
        }
        public async Task <ActionResult> _EditTest(Guid testId)
        {
            TestDTO testDto = await _testService.GetById(testId);

            TestEditModel model = _mapper.Map <TestEditModel>(testDto);

            return(PartialView(model));
        }
Example #5
0
        public async Task <ActionResult> ShowTestDescription(Guid testId)
        {
            TestDTO testDto = await _testService.GetById(testId);

            TestEditModel model = _mapper.Map <TestEditModel>(testDto);

            return(View(model));
        }
Example #6
0
        public void SaveTestEditModel(TestEditModel testEditModel)
        {
            var test = Mapper.Map <TestEditModel, Test>(testEditModel);

            _testRepository.SaveTest(test);

            _billingAccountRepository.SaveBillingAccountTest(testEditModel.BillingAccountId, testEditModel.TestId);
        }
Example #7
0
        // GET: Test/Edit/5
        public ActionResult Edit(int id)
        {
            var testEditModel = new TestEditModel()
            {
                Test = testFacade.GetTestByID(id)
            };

            return(View(testEditModel));
        }
        public RedirectToActionResult CreateOrEditTest(TestEditModel model)
        {
            this.logger.LogInformation("CreateOrEditTest(post) action");

            string owner  = this.User.Identity.Name;
            int    testId = this.servicesManager.Tests.SaveTestFromViewIntoDb(model, owner);

            return(this.RedirectToAction("CreateOrEditQuestion", new { testId }));
        }
Example #9
0
        // GET: Test/Create
        public ActionResult Create()
        {
            var testEditModel = new TestEditModel()
            {
                Topics        = topicFacade.GetAllTopics(),
                StudentGroups = studentGroupFacade.GetAllStudentGroups()
            };

            return(View(testEditModel));
        }
Example #10
0
 public ActionResult Edit(TestEditModel testEditModel)
 {
     try
     {
         testFacade.EditTest(testEditModel.Test);
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(View());
     }
 }
Example #11
0
 public ActionResult Create(TestEditModel testEditModel)
 {
     try
     {
         testFacade.CreateTest(testEditModel.Test, testEditModel.SelectedTopics,
                               testEditModel.SelectedStudentGroups, testEditModel.NumberOfQuestions);
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(View(testEditModel));
     }
 }
Example #12
0
 public TestEditModel GetTestEditModel(int testId = 0)
 {
     if (testId != 0)
     {
         var test          = this.dataManager.Tests.GetTestById(testId);
         var testEditModel = new TestEditModel()
         {
             testId      = test.Id,
             Title       = test.Name,
             Description = test.Description,
             CodeLock    = test.CodeLock,
         };
         return(testEditModel);
     }
     else
     {
         return(new TestEditModel());
     }
 }
        public async Task <ActionResult> _EditTest(TestEditModel model)
        {
            if (ModelState.IsValid)
            {
                TestDTO testDto = _mapper.Map <TestDTO>(model);

                OperationDetails result = await _testService.Update(testDto);

                if (result.Succeeded)
                {
                    TempData["PartialMessageSuccess"] = result.Message;
                    return(RedirectToAction("_ExtendedAdminTestSearch", "Panel"));
                }
                else
                {
                    ModelState.AddModelError(result.Property, result.Message);
                }
            }

            return(PartialView(model));
        }
Example #14
0
        public void SetTestEditModelIntoDbTest()
        {
            var managerMock = new DataManagerMock(new AnswersRepositoryMock(), new TestsRepositoryMock(),
                                                  new QuestionsRepositoryMock(), new UsersRepositoryMock(), new CorrectAnswerRepositoryMock(), new UserTestAccessRepositoryMock(), new StatisticsRepositoryMock());
            var testService   = new TestService(managerMock);
            var testEditModel = new TestEditModel {
                Id = 1, PassToDate = DateTime.Today, Name = "Fake"
            };
            var adminName      = "admin";
            var expectedTestId = 1;

            var actual = testService.SetTestEditModelIntoDb(testEditModel, adminName);

            Assert.Equal(expectedTestId, actual);

            testEditModel.Id = 0;
            expectedTestId   = 0;
            actual           = testService.SetTestEditModelIntoDb(testEditModel, adminName);

            Assert.Equal(expectedTestId, actual);
        }
Example #15
0
        public async Task <IActionResult> EditTest(TestEditModel model)
        {
            // Валідація.
            if (ModelState.IsValid)
            {
                // Викладач, що створює тест.
                Teacher teacher = mainDb.Teachers.FirstOrDefault(t => t.Mail == User.Identity.Name);
                // Додаємо питання, відповіді, макс. оцінку.
                model.Test.Questions = model.Test.Questions.Where(q => q != null).ToList();
                foreach (var q in model.Test.Questions)
                {
                    q.Answers = q.Answers.Where(a => a != null).ToList();
                }
                model.Test.MaxScore = model.Test.Questions.Count;

                // Перевіряємо: редагується чи створюється тест.
                if (model.Test.TestId != 0)
                {
                    Test test = mainDb.Tests.First(t => t.TestId == model.Test.TestId);
                    test.RemoveQuestions(mainDb);
                    test.Update(model.Test);
                }
                else
                {
                    mainDb.Tests.Add(model.Test);
                }

                await mainDb.SaveChangesAsync();

                return(RedirectToAction("TeacherTests", "Test"));
            }
            else
            {
                return(View(model));
            }
        }
Example #16
0
        public int SetTestEditModelIntoDb(TestEditModel _model, string adminName)
        {
            Test test;

            if (_model.Id != 0)
            {
                test            = _dataManager.Tests.GetTestById(_model.Id);
                test.Name       = _model.Name;
                test.PassToDate = _model.PassToDate;
            }
            else
            {
                string userId = _dataManager.Users.GetIdByName(adminName);
                test = new Test()
                {
                    Name       = _model.Name,
                    UserId     = userId,
                    PassToDate = _model.PassToDate,
                };
            }
            _dataManager.Tests.SetTestIntoDb(test);

            return(test.Id);
        }