public IActionResult EditPie(PieEditViewModel pieEditViewModel) { pieEditViewModel.Pie.CategoryId = pieEditViewModel.CategoryId; if (ModelState.GetValidationState("Pie.Price") == ModelValidationState.Valid && pieEditViewModel.Pie.Price < 0) { ModelState.AddModelError(nameof(pieEditViewModel.Pie.Price), "invalid price"); } if (ModelState.IsValid) { _pieRepository.UpdatePie(pieEditViewModel.Pie); return(RedirectToAction("Index")); } var categories = _categoryRepository.AllCategories; pieEditViewModel = new PieEditViewModel { Categories = categories.Select(c => new SelectListItem() { Text = c.CategoryName, Value = c.CategoryId.ToString() }).ToList(), CategoryId = pieEditViewModel.Pie.CategoryId }; var item = pieEditViewModel.Categories.FirstOrDefault(c => c.Value == pieEditViewModel.CategoryId.ToString()); item.Selected = true; return(View(pieEditViewModel)); }
public IActionResult AddPie(PieEditViewModel pieEditViewModel) { //Basic validation //if (ModelState.IsValid) //{ // _pieRepository.CreatePie(pieEditViewModel.Pie); // return RedirectToAction("Index"); //} //custom validation rules if (ModelState.GetValidationState("Pie.Price") == ModelValidationState.Valid || pieEditViewModel.Pie.Price < 0) { ModelState.AddModelError(nameof(pieEditViewModel.Pie.Price), "The price of the pie should be higher than 0"); } if (pieEditViewModel.Pie.IsPieOfTheWeek && !pieEditViewModel.Pie.InStock) { ModelState.AddModelError(nameof(pieEditViewModel.Pie.IsPieOfTheWeek), "Only pies that are in stock should be Pie of the Week"); } if (ModelState.IsValid) { _pieRepository.CreatePie(pieEditViewModel.Pie); return(RedirectToAction("Index")); } return(View(pieEditViewModel)); }
public void AddPie_ReturnsViewResultWithViewModel_InvalidPieViewModel_NegativePrice(int price) { //arrange var pieEditViewModel = new PieEditViewModel(); var mockPieRepository = RepositoryMocks.GetPieRepository(); var pie = mockPieRepository.Object.GetPieById(1); pie.IsPieOfTheWeek = true; pie.InStock = false; pie.Price = price; pieEditViewModel.Pie = pie; pieEditViewModel.CategoryId = 1; var mockCategoryRepository = new Mock <ICategoryRepository>(); var pieManagementController = new PieManagementController(mockPieRepository.Object, mockCategoryRepository.Object); //act var result = pieManagementController.AddPie(pieEditViewModel); //assert var viewResult = Assert.IsType <ViewResult>(result); Assert.NotNull(viewResult.Model); Assert.True(string.IsNullOrEmpty(viewResult.ViewName)); }
public IActionResult EditPie([FromRoute] int pieId) //public IActionResult EditPie([FromQuery]int pieId, [FromHeader] string accept) //public IActionResult EditPie([FromQuery]int pieId, // [FromHeader(Name = "Accept-Language")] string accept) { var categories = _categoryRepository.Categories; var pie = _pieRepository.Pies.FirstOrDefault(p => p.PieId == pieId); var pieEditViewModel = new PieEditViewModel { Categories = categories.Select(c => new SelectListItem() { Text = c.CategoryName, Value = c.CategoryId.ToString() }).ToList(), Pie = pie, CategoryId = pie.CategoryId }; var item = pieEditViewModel.Categories.FirstOrDefault(c => c.Value == pie.CategoryId.ToString()); item.Selected = true; return(View(pieEditViewModel)); }
public IActionResult AddPie(PieEditViewModel pieEditViewModel) { if (ModelState.IsValid) { _pieRepository.CreatePie(pieEditViewModel.Pie); return(RedirectToAction("Index")); } return(View(pieEditViewModel)); }
//public IActionResult EditPie([Bind("Pie")] PieEditViewModel pieEditViewModel) public IActionResult EditPie(PieEditViewModel pieEditViewModel) { pieEditViewModel.Pie.CategoryId = pieEditViewModel.CategoryId; if (ModelState.IsValid) { _pieRepository.UpdatePie(pieEditViewModel.Pie); return(RedirectToAction("Index")); } return(View(pieEditViewModel)); }
public IActionResult AddPie(PieEditViewModel pieEditViewModel) { //Basic validation if (ModelState.IsValid) { pieEditViewModel.Pie.CategoryId = pieEditViewModel.CategoryId; _pieRepository.CreatePie(pieEditViewModel.Pie); return(RedirectToAction("Index")); } return(View(pieEditViewModel)); }
public IActionResult AddPie() { var categories = _categoryRepository.Categories; var pieEditViewModel = new PieEditViewModel { Categories = categories.Select(c => new SelectListItem { Text = c.CategoryName, Value = c.Id.ToString() }).ToList(), CategoryId = categories.FirstOrDefault().Id }; return(View(pieEditViewModel)); }
public IActionResult AddPie(PieEditViewModel pieEditViewModel) { if (ModelState.GetValidationState("Pie.Price") == ModelValidationState.Valid && pieEditViewModel.Pie.Price > 0) { ModelState.AddModelError(nameof(pieEditViewModel.Pie.Price), "invalid price"); } if (ModelState.IsValid) { _pieRepository.CreatePie(pieEditViewModel.Pie); return(RedirectToAction("Index")); } return(View(pieEditViewModel)); }
public IActionResult EditPie(int pieId) { var categories = _categoryRepository.AllCategories; var pie = _pieRepository.AllPies.FirstOrDefault(p => p.PieId == pieId); var pieEditViewModel = new PieEditViewModel { Categories = categories.Select(c => new SelectListItem() { Text = c.CategoryName, Value = c.CategoryId.ToString() }).ToList(), Pie = pie, CategoryId = pie.CategoryId }; var item = pieEditViewModel.Categories.FirstOrDefault(c => c.Value == pie.Category.CategoryId.ToString()); item.Selected = true; return(View(pieEditViewModel)); }
public IActionResult Update(PieEditViewModel updatePie) { updatePie.Pie.Category = _categoryRepository.AllCategories .FirstOrDefault(c => c.CategoryName == updatePie.Category.CategoryName); updatePie.Pie.CategoryId = _categoryRepository.AllCategories .FirstOrDefault(c => c.CategoryName == updatePie.Category.CategoryName).CategoryId; if (updatePie.Pie.PieId > 0) { updatePie.Pie = _pieRepository.Update(updatePie.Pie); } else { updatePie.Pie = _pieRepository.Add(updatePie.Pie); } _pieRepository.Commit(); return(RedirectToAction("Details", new RouteValueDictionary(new { controller = "Pie", action = "Details", Id = updatePie.Pie.PieId })));; }
public void AddPie_Redirects_ValidPieViewModel() { //arrange var pieEditViewModel = new PieEditViewModel(); var mockPieRepository = RepositoryMocks.GetPieRepository(); var pie = mockPieRepository.Object.GetPieById(1); pieEditViewModel.Pie = pie; pieEditViewModel.CategoryId = 1; var mockCategoryRepository = new Mock <ICategoryRepository>(); var pieManagementController = new PieManagementController(mockPieRepository.Object, mockCategoryRepository.Object); //act var result = pieManagementController.AddPie(pieEditViewModel); //assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("Index", redirectToActionResult.ActionName); }