public IActionResult Edit(VetNoteViewModel model) { var dog = this.context.Dogs.Single(d => d.Id == model.Id); var vet = new User(); if (dog.VetId != this.userManager.GetUserId(User)) { return(RedirectToAction("Index", "Home")); } vet = this.context.Users.Single(u => u.Id == this.userManager.GetUserId(User)); dog.IsVaccinated = model.IsVaccinated; dog.IsDisinfected = model.IsDisinfected; dog.IsCastrated = model.IsCastrated; if (model.VetNote != null) { dog.VetNotes.Add(new VetNote { Subject = dog, Vet = vet, CreatedOn = DateTime.UtcNow, Content = model.VetNote }); } context.SaveChanges(); return(RedirectToAction("Dog", "Dogs", new { Id = model.Id })); }
public void DogsVetShouldBeAbleToChangeHealthStatus() { var fakeVet = new User { Email = "*****@*****.**" }; this.context.Users.Add(fakeVet); this.context.SaveChanges(); var firstFakeDog = new Dog { Name = "Pancho", VetId = this.context.Users.FirstOrDefault(u => u.Email == "*****@*****.**").Id, BirthDate = DateTime.Parse("22.11.2001"), OwnerId = this.context.Users.FirstOrDefault(u => u.Email == "*****@*****.**").Id }; firstFakeDog.Images.Add(new Pic { ImageUrl = "iamgeurl" }); this.context.Dogs.Add(firstFakeDog); this.context.SaveChanges(); Assert.AreEqual(0, firstFakeDog.VetNotes.Count); var model = new VetNoteViewModel { Id = firstFakeDog.Id, IsDisinfected = true, VetNote = "Dog's fine yo" }; var res = this.vetsController.Edit(model); var result = res as RedirectToActionResult; Assert.AreEqual("Dog", result.ActionName); Assert.AreEqual(true, firstFakeDog.IsDisinfected); Assert.AreEqual(1, firstFakeDog.VetNotes.Count); Assert.IsTrue(firstFakeDog.VetNotes.Any(v => v.Content == "Dog's fine yo")); }
public void ShouldNotBeAbleToUpdateHealthStatusIfNotDogsVet() { var fakeVet = new User { Email = "*****@*****.**" }; this.context.Users.Add(fakeVet); this.context.SaveChanges(); var firstFakeDog = new Dog { Name = "Pancho", VetId = this.context.Users.FirstOrDefault(u => u.Email == "*****@*****.**").Id, BirthDate = DateTime.Parse("22.11.2001"), OwnerId = this.context.Users.FirstOrDefault(u => u.Email == "*****@*****.**").Id }; firstFakeDog.Images.Add(new Pic { ImageUrl = "iamgeurl" }); this.context.Dogs.Add(firstFakeDog); this.context.SaveChanges(); var model = new VetNoteViewModel { Id = firstFakeDog.Id, IsDisinfected = true, IsVaccinated = true, VetNote = null }; var result = this.vetsController.Edit(model); var redirectResult = result as RedirectToActionResult; Assert.AreEqual("Index", redirectResult.ActionName); Assert.AreEqual(false, firstFakeDog.IsVaccinated); Assert.AreEqual(false, firstFakeDog.IsDisinfected); }
public IActionResult Edit(Guid id) { var dog = this.context.Dogs.Single(d => d.Id == id); if (dog.VetId == userManager.GetUserId(User)) { var model = new VetNoteViewModel { IsVaccinated = dog.IsVaccinated, IsDisinfected = dog.IsDisinfected, IsCastrated = dog.IsCastrated }; return(View(model)); } else { return(RedirectToAction("Index", "Home")); } }