コード例 #1
0
        public IActionResult ProcessAddTestForm([FromBody] AddTestViewModel addTestViewModel)
        {
            if (ModelState.IsValid)
            {
                Test newTest = new Test
                {
                    NameOfTest  = addTestViewModel.NameOfTest,
                    Description = addTestViewModel.Description,
                    UpdatedAt   = DateTime.Now,
                    CreatedAt   = DateTime.Now,
                };

                context.Tests.Add(newTest);
                context.SaveChanges();

                foreach (Question question in addTestViewModel.Questions)
                {
                    Question newQuestion = new Question
                    {
                        TestId             = newTest.Id,
                        Prompt             = question.Prompt,
                        Type               = question.Type,
                        Answer             = question.Answer,
                        ImgRelatedToPrompt = question.ImgRelatedToPrompt
                    };

                    context.Questions.Add(newQuestion);
                    context.SaveChanges();

                    if (question.Options != null)
                    {
                        foreach (Option option in question.Options)
                        {
                            Option newOption = new Option
                            {
                                QuestionId = newQuestion.Id,
                                Value      = option.Value,
                                Label      = option.Label
                            };
                            context.Options.Add(newOption);
                            context.SaveChanges();
                        }
                    }
                }
                return(Redirect("/Test/Details/" + newTest.Id));
            }
            return(View("Add", addTestViewModel));
        }
コード例 #2
0
        public void NotAddInvalidTestRecordToDb()
        {
            //arrange
            var viewModel = new AddTestViewModel();

            //act
            IActionResult result = _sut.Test(viewModel);

            //assert
            ViewResult viewResult        = Assert.IsType <ViewResult>(result);
            var        isModelStateValid = viewResult.ViewData.ModelState.IsValid;

            Assert.False(isModelStateValid);
            var testCount = _context.Test.Count();

            Assert.Equal(0, testCount);
        }
コード例 #3
0
        private AddTestViewModel GetViewModelWithCityList()
        {
            var data = _context.Cities.Select(x => new SelectListItem()
            {
                Value = x.CityName,
                Text  = x.CityName
            }).ToList();

            var academicYear = _context.AcademicYears.OrderByDescending(x => x.AcademicYearID).Select(i => new SelectListItem()
            {
                Value = i.AcademicYearID.ToString(),
                Text  = i.AcademicYearStart.ToString("yyyy-MM-dd") + "  ||  " + i.AcademicYearEnd.ToString("yyyy-MM-dd")
            }).ToList();

            var viewModel = new AddTestViewModel()
            {
                Cities = data, DateOfTest = DateTime.Today, AcademicYears = academicYear
            };

            return(viewModel);
        }
コード例 #4
0
        public void AddNewValidTestRecordToDb()
        {
            //arrange
            City city = new City {
                CityName = "Vilnius"
            };

            _context.Cities.Add(city);
            _context.SaveChanges();
            var viewModel = new AddTestViewModel {
                CityName = "Vilnius", DateOfTest = DateTime.Today
            };

            //act
            IActionResult result = _sut.Test(viewModel);

            //assert
            var actual = _context.Test.FirstOrDefault(x => x.TestId == 1);

            Assert.Equal("Vilnius", actual.City.CityName);
        }
コード例 #5
0
        public IActionResult Test(AddTestViewModel model)
        {
            var isNotUnique = _context.Test.Any
                              (
                x => x.City.CityName == model.CityName && x.DateOfTest == model.DateOfTest
                              );

            if (isNotUnique)
            {
                ModelState.AddModelError(string.Empty, "Toks testas jau yra sukurtas");
            }

            var dateCheckInteger = DateTime.Today.CompareTo(model.DateOfTest.Date);

            if (dateCheckInteger == 1)
            {
                ModelState.AddModelError(string.Empty, "Data negali būti ankstesnė negu šiandiena");
            }

            if (ModelState.IsValid)
            {
                City         city         = _context.Cities.FirstOrDefault(x => x.CityName == model.CityName);
                AcademicYear academicYear = _context.AcademicYears.Find(model.AcademicYearID);

                if (city != null)
                {
                    Test newRecord = new Test()
                    {
                        City = city, DateOfTest = model.DateOfTest, AcademicYear = academicYear
                    };
                    _context.Test.Add(newRecord);
                    _context.SaveChanges();

                    return(RedirectToAction("List"));
                }
            }
            AddTestViewModel viewModel = GetViewModelWithCityList();

            return(View(viewModel));
        }
コード例 #6
0
        public void NotAddTestRecordIfDublicated()
        {
            // arrange
            City city = new City {
                CityName = "Vilnius"
            };

            _context.Cities.Add(city);
            _context.SaveChanges();
            var viewModel = new AddTestViewModel {
                CityName = "Vilnius", DateOfTest = DateTime.Today
            };

            //act
            _sut.Test(viewModel);
            _sut.Test(viewModel);

            //assert
            var testCount = _context.Test.Count();

            Assert.Equal(1, testCount);
        }
コード例 #7
0
        public IActionResult Test()
        {
            AddTestViewModel viewModel = GetViewModelWithCityList();

            return(View("Test", viewModel));
        }
コード例 #8
0
        public IActionResult Add()
        {
            AddTestViewModel addTestViewModel = new AddTestViewModel();

            return(View(addTestViewModel));
        }