//Action method - Add equipment that returns the edit view model
        public IActionResult AddEquipment()
        {
            var equipment = _equipmentRepository.GetAllEquipment();
            var equipmentEditViewModel = new EquipmentEditViewModel
            {
            };

            return(View(equipmentEditViewModel));
        }
        public IActionResult EditEquipment(EquipmentEditViewModel equipmentEditViewModel)
        {
            equipmentEditViewModel.Equipment.Id = equipmentEditViewModel.Equipment.Id;

            if (ModelState.IsValid)
            {
                _equipmentRepository.UpdateEquipment(equipmentEditViewModel.Equipment);
                return(RedirectToAction("Index"));
            }
            return(View(equipmentEditViewModel));
        }
        public IActionResult EditEquipment(int Id)
        {
            var equipment = _equipmentRepository.GetAllEquipment().OrderBy(e => e.Name);

            var equipmentEditViewModel = new EquipmentEditViewModel
            {
                EquipmentId = Id.ToString()
            };

            return(View(equipmentEditViewModel));
        }
        public IActionResult AddEquipment(EquipmentEditViewModel equipmentEditViewModel)
        {
            //custom validation rules
            // if (ModelState.GetValidationState("Equipment.Price") == ModelValidationState.Valid
            //   || equipmentEditViewModel.Equipment.Price < 0)
            // ModelState.AddModelError(nameof(equipmentEditViewModel.Equipment.Price), "The price of the equipment should be higher than 0");


            //checks to see if inputed data is valig
            if (ModelState.IsValid)
            {
                //this will create the Equipment and store it in the database. The page will then redirect to the current page
                _equipmentRepository.CreateEquipment(equipmentEditViewModel.Equipment);
                return(RedirectToAction("Index"));
            }

            return(View(equipmentEditViewModel));
        }
        public void AddEquipment_Redirects_ValidEquipmnetViewModel()
        {
            //arrange
            var equipmentEditViewModel  = new EquipmentEditViewModel();
            var mockEquipmentRepository = MockData.GetEquipmentRepository();
            var equipment = mockEquipmentRepository.Object.GetEquipmentById(1);

            equipmentEditViewModel.Equipment = equipment;



            var equipmentManagerController = new EquipmentManagerController(mockEquipmentRepository.Object);

            //act
            var result = equipmentManagerController.AddEquipment(equipmentEditViewModel);

            //assert
            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("Index", redirectToActionResult.ActionName);
        }