public void Edit(TeamEditBindingModel teamBindingModel) { Team team = this.teamRepository.SingleOrDefault(t => t.Id == teamBindingModel.Id); if (team == null) { throw new InvalidOperationException(string.Format(ServicesConstants.EntityNotFound, "Team")); } // If name is about to be changed. if (team.Name != teamBindingModel.Name) { if (this.IsTeamNameTaken(teamBindingModel.Name)) { throw new InvalidOperationException(string.Format(ServicesConstants.EntityAlreadyExists, "Team", "name")); } } team.Name = teamBindingModel.Name; team.Acronym = teamBindingModel.Acronym; team.Description = teamBindingModel.Description; if (!this.teamRepository.IsEntityValid(team)) { throw new ValidationException(string.Format(ServicesConstants.EntityNotValid, "Team")); } bool hasUpdated = this.teamRepository.Update(team); if (!hasUpdated) { throw new InvalidOperationException(string.Format(ServicesConstants.EntityAlreadyExists, "Team", "name")); } }
public ActionResult Edit([Bind(Include = "Id,Name,Description,Acronym")] TeamEditBindingModel teamBindingModel) { if (ModelState.IsValid) { this.teamService.Edit(teamBindingModel); return(this.RedirectToAction("Details", new { id = teamBindingModel.Name })); } return(this.View(teamBindingModel)); }
// GET: Team/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } TeamEditBindingModel team = this.teamService.Find <TeamEditBindingModel>(id.Value); if (team == null) { return(this.HttpNotFound()); } return(this.View(team)); }
public void EditTeam_Description_WithInvalidData_ShouldThrowException() { Team team = this.AddTeam(); team.Id = Utilities.GenerateUniqueRandomInteger(); TeamEditBindingModel editedTeam = Mapper.Instance.Map <TeamEditBindingModel>(team); editedTeam.Description = string.Empty; ValidationException va = Assert.Throws <ValidationException>( () => { this.teamService.Edit(editedTeam); }); Assert.That(va.Message, Is.EqualTo("Team not valid.")); }
public void EditTeam_Name_ShouldChangeTeamName() { Team expectedTeam = this.AddTeam(); expectedTeam.Id = Utilities.GenerateUniqueRandomInteger(); TeamEditBindingModel editedTeam = Mapper.Map <TeamEditBindingModel>(expectedTeam); editedTeam.Name = "DifferentName"; this.teamService.Edit(editedTeam); Team actualTeam = this.repository.SingleOrDefault(t => t.Name == editedTeam.Name); Assert.IsNotNull(actualTeam); Assert.AreEqual(editedTeam.Name, actualTeam.Name); Assert.AreEqual(editedTeam.Acronym, actualTeam.Acronym); Assert.AreEqual(editedTeam.Description, actualTeam.Description); Assert.AreEqual(editedTeam.Acronym, actualTeam.Acronym); }
public void EditTeam_Name_WithAlreadyExistingName_ShouldThrowException() { Team firstTeam = this.AddTeam(); firstTeam.Id = Utilities.GenerateUniqueRandomInteger(); Team secondTeam = this.AddTeam(); secondTeam.Id = Utilities.GenerateUniqueRandomInteger(); TeamEditBindingModel editedTeam = Mapper.Map <TeamEditBindingModel>(secondTeam); editedTeam.Name = firstTeam.Name; InvalidOperationException ioe = Assert.Throws <InvalidOperationException>( () => { this.teamService.Edit(editedTeam); }); Assert.That(ioe.Message, Is.EqualTo("Team with same name already exists.")); }