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)); }
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); }
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); }
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); }
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)); }
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); }
public IActionResult Test() { AddTestViewModel viewModel = GetViewModelWithCityList(); return(View("Test", viewModel)); }
public IActionResult Add() { AddTestViewModel addTestViewModel = new AddTestViewModel(); return(View(addTestViewModel)); }