Exemplo n.º 1
0
        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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 5
0
 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));
 }
Exemplo n.º 7
0
 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));
 }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
 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));
 }
Exemplo n.º 10
0
        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));
        }
Exemplo n.º 11
0
        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 })));;
        }
Exemplo n.º 12
0
        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);
        }