public ActionResult AddFish(UpdateFishViewModel model) { if (ModelState.IsValid) { try { var lake = this.lakeService.FindByName(model.SelectedLake); foreach (var fishName in model.SelectedFish) { var fish = this.fishService.FindByName(fishName); lake.Fish.Add(fish); } this.lakeService.Save(); } catch (Exception) { return(Json(new { status = "error", message = GlobalMessages.AddingFishErrorMessage })); } return(Json(new { status = "success", message = string.Format(GlobalMessages.AddingFishSuccessMessageFormat, model.SelectedLake) })); } else { var errors = string.Join("<br/>", ModelState.Values .SelectMany(v => v.Errors .Select(e => e.ErrorMessage))); return(Json(new { status = "error", message = errors })); } }
public ActionResult UpdateFish() { var model = new UpdateFishViewModel(); var fish = this.fishService.GetAll(); model.Fish = fish; var lakes = this.lakeService.GetAll(); model.Lakes = lakes; return(View(model)); }
public void ReturnJsonWithCorrectSuccessMessage_IfRemovingFishNotFailed_AndRemoveFishFromLake() { // Arrange var lakeName = "Lake"; var mockedLakeFactory = new Mock <ILakeFactory>(); var mockedLocationFactory = new Mock <ILocationFactory>(); var mockedFish = new Fish(); var mockedLake = new Lake(); mockedLake.Fish.Add(mockedFish); var mockedLakeService = new Mock <ILakeService>(); mockedLakeService.Setup(s => s.FindByName(It.IsAny <string>())).Returns(mockedLake).Verifiable(); mockedLakeService.Setup(s => s.Save()).Verifiable(); var mockedLocationService = new Mock <ILocationService>(); mockedLocationService.Setup(s => s.FindByName(It.IsAny <string>())).Verifiable(); var mockedFishService = new Mock <IFishService>(); mockedFishService.Setup(s => s.FindByName(It.IsAny <string>())).Returns(mockedFish).Verifiable(); var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object); var selectedFish = Enumerable.Repeat <string>("", 1); var model = new UpdateFishViewModel() { SelectedFish = selectedFish, SelectedLake = lakeName }; // Act var result = controller.RemoveFish(model) as JsonResult; dynamic dResult = result.Data; // Assert Assert.AreEqual("success", dResult.status); Assert.AreEqual(GlobalMessages.RemoveFishSuccessMessage, dResult.message); Assert.IsFalse(mockedLake.Fish.Contains(mockedFish)); mockedLakeService.Verify(s => s.FindByName(It.IsAny <string>()), Times.Once); mockedLakeService.Verify(s => s.Save(), Times.Once); mockedFishService.Verify(s => s.FindByName(It.IsAny <string>()), Times.Once); }