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));
        }
Beispiel #3
0
        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);
        }