public IActionResult Edit(EditAuthorDTO newData) { string fullName = NameRefactorer .GetFullName(newData.FirstName, newData.MiddleName, newData.LastName); Author newAuthor = authorServices.FindAuthor(fullName); Author oldAuthor = authorServices.FindAuthor(newData.Id); string oldFullName = NameRefactorer .GetFullName(oldAuthor.FirstName, oldAuthor.MiddleName, oldAuthor.LastName); if (newAuthor != null && fullName != oldFullName) { ViewData.Add("NameRepeatingError", "An author with this name already exists!"); return(View(newData)); } try { authorServices.UpdateAuthor(newData); } catch (ArgumentException ae) { ViewData.Add("ShortName", ae.Message); return(View(newData)); } return(RedirectToAction(nameof(Authors))); }
public void UpdateAuthor(EditAuthorDTO newData) { Author author = FindAuthor(newData.Id); author.Id = newData.Id; if (newData.FirstName != null && newData.FirstName != author.FirstName) { author.FirstName = newData.FirstName; } if (newData.MiddleName != null && newData.MiddleName != author.MiddleName) { author.MiddleName = newData.MiddleName; } if (newData.LastName != null && newData.LastName != author.LastName) { author.LastName = newData.LastName; } if (newData.Nickname != null && newData.Nickname != author.Nickname) { author.Nickname = newData.Nickname; } if (newData.Birthday != null && newData.Birthday != author.Birthday) { author.Birthday = newData.Birthday; } if (newData.Country != null) { Country country = db.Countries .FirstOrDefault(c => c.Name == newData.Country); if (country == null) { country = new Country { Name = newData.Country }; db.Countries.Add(country); db.SaveChanges(); } author.CountryId = country.Id; } db.SaveChanges(); }
public void IsChangingLastNameCorrectly() { Author author = db.Authors.FirstOrDefault(); EditAuthorDTO editAuthorDTO = new EditAuthorDTO { Id = author.Id, FirstName = author.FirstName, MiddleName = author.MiddleName, LastName = "LasteName1", Birthday = author.Birthday, Nickname = author.Nickname, Country = db.Countries.FirstOrDefault().Name }; authorServices.UpdateAuthor(editAuthorDTO); Assert.AreEqual("LasteName1", author.LastName); }
public void NotChangingAuthorFirstNameWhenNewValueIsEqualToOldValue() { Author author = db.Authors.FirstOrDefault(); EditAuthorDTO editAuthorDTO = new EditAuthorDTO { Id = author.Id, FirstName = "FirstName1", MiddleName = author.MiddleName, LastName = author.LastName, Birthday = author.Birthday, Nickname = author.Nickname, Country = db.Countries.FirstOrDefault().Name }; authorServices.UpdateAuthor(editAuthorDTO); Assert.AreEqual(author.FirstName, "FirstName1"); }
public void NotChangingAuthorBirthdayWhenNewValueIsEqualToOldValue() { Author author = db.Authors.FirstOrDefault(); EditAuthorDTO editAuthorDTO = new EditAuthorDTO { Id = author.Id, FirstName = author.FirstName, MiddleName = author.MiddleName, LastName = author.LastName, Birthday = DateTime.Parse("20-12-20"), Nickname = author.Nickname, Country = db.Countries.FirstOrDefault().Name }; authorServices.UpdateAuthor(editAuthorDTO); Assert.AreEqual(DateTime.Parse("20-12-20"), author.Birthday); }
public void NotChangingAuthorCountryNameWhenNewValueIsNull() { Author author = db.Authors.FirstOrDefault(); EditAuthorDTO editAuthorDTO = new EditAuthorDTO { Id = author.Id, FirstName = author.FirstName, MiddleName = author.MiddleName, LastName = author.LastName, Birthday = author.Birthday, Nickname = author.Nickname, Country = null }; authorServices.UpdateAuthor(editAuthorDTO); Assert.AreEqual("Bulgaria", author.Country.Name); }
public void IsChangingBirthdayCorrectly() { Author author = db.Authors.FirstOrDefault(); EditAuthorDTO editAuthorDTO = new EditAuthorDTO { Id = author.Id, FirstName = author.FirstName, MiddleName = author.MiddleName, LastName = author.LastName, Birthday = DateTime.Parse("1212-12-12"), Nickname = author.Nickname, Country = db.Countries.FirstOrDefault().Name }; authorServices.UpdateAuthor(editAuthorDTO); Assert.AreEqual(DateTime.Parse("1212-12-12"), author.Birthday); }
public IActionResult Edit(int?id) { if (id == null) { return(RedirectToAction(nameof(Authors))); } Author author = authorServices.FindAuthor(id); EditAuthorDTO result = new EditAuthorDTO { Id = author.Id, FirstName = author.FirstName, MiddleName = author.MiddleName, LastName = author.LastName, Birthday = author.Birthday, Nickname = author.Nickname, Country = authorServices.GetAuthorCountry(author) }; return(View(result)); }