public ViewResult AddOrEditPortfolio(int? id) { //if no id given, send user to an empty form if (id == null) { return View(new AdminPortfolioFull()); } var project = _portfolioRepo.GetPortfolioProject((int)id); //otherwise, if project exists, load its info into //the form to be edited if (project != null) { var model = new AdminPortfolioFull { Description = project.Description, Id = project.Id, ImgUrl = project.ImgUrl, LinkUrl = project.LinkUrl, Name = project.Name, Technologies = project.Technologies }; return View(model); } //if it does not exist, send back to main portfolio project page return View("Portfolio", GetAllProjectsForVm()); }
public ActionResult AddOrEditPortfolio(AdminPortfolioFull model) { //if model state is valid, save the project to db if (ModelState.IsValid) { var project = new PortfolioProject { Description = model.Description, Id = model.Id, ImgUrl = model.ImgUrl, LinkUrl = model.LinkUrl, Name = model.Name, Technologies = model.Technologies }; _portfolioRepo.SavePortfolioProject(project); return RedirectToAction("Portfolio"); } //if model not valid, send user back to form with partial model return View(model); }
public void CannotSaveInvalidPortfolioChanges() { var target = GetAdminController(); target.ModelState.AddModelError("error", "error"); var project = new AdminPortfolioFull { Id = 3, Name = "A New Project", Description = "desc", ImgUrl = "/Content", LinkUrl = "www.sample.com", Technologies = "C#, Java" }; var result = target.AddOrEditPortfolio(project); portfolioMock.Verify(m => m.SavePortfolioProject(It.IsAny<PortfolioProject>()), Times.Never); Assert.IsInstanceOfType(result, typeof(ViewResult)); }
public void CanSaveValidPortfolioChanges() { var mockedBlog = new Mock<IBlogPostRepository>(); var mockedPortfolio = new Mock<IPortfolioProjectRepository>(); var target = new AdminController(mockedBlog.Object, mockedPortfolio.Object); var project = new AdminPortfolioFull { Id = 3, Name = "A New Project", Description = "desc", ImgUrl = "/Content", LinkUrl = "www.sample.com", Technologies = "C#, Java" }; var sameProject = new PortfolioProject { Id = 3, Name = "A New Project", Description = "desc", ImgUrl = "/Content", LinkUrl = "www.sample.com", Technologies = "C#, Java" }; //mockedPortfolio.Setup(m => m.SavePortfolioProject(sameProject)).Returns(sameProject); var result = target.AddOrEditPortfolio(project); portfolioMock.Verify(m => m.SavePortfolioProject(sameProject)); Assert.IsInstanceOfType(result, typeof (RedirectResult)); }