public ActionResult Edit(int id, int petId) { TempData["ReturnUrl"] = Request.Headers["Referer"].ToString(); PetVaccination model = _context.PetVaccination .Include(pv => pv.Vaccination) .Where(pv => pv.VaccinationId == id && pv.PetId == petId) .FirstOrDefault(); if (model == null) { model = new PetVaccination(); model.Vaccination = _context.Vaccination.Where(v => v.VaccinationId == id).FirstOrDefault(); } return(View(model)); }
public IActionResult CheckIn(int id, IFormCollection form) { ViewBag.Vaccinations = _context.Vaccination.ToList(); var checkedIds = form["VaccinationChecked"].ToList(); List <PetVaccination> petVaccinations = new List <PetVaccination>(); ViewBag.PetVaccinations = petVaccinations; bool allVaccines = false; bool anyVacExpired = false; foreach (var vac in ViewBag.Vaccinations) { DateTime expiryDate; bool vaccinationChecked = checkedIds.Contains(vac.VaccinationId.ToString()); if (DateTime.TryParse(form["Vaccination:" + vac.VaccinationId], out expiryDate)) { PetVaccination pv = new PetVaccination(); pv.VaccinationId = vac.VaccinationId; pv.ExpiryDate = expiryDate; pv.VaccinationChecked = vaccinationChecked; petVaccinations.Add(pv); if (expiryDate < DateTime.Today) { anyVacExpired = true; } } } if (checkedIds.Count() >= 6) { allVaccines = true; } if (!allVaccines || anyVacExpired) { return(RedirectToAction("CheckIn", new { id = id })); } else { var petRes = _context.PetReservation.Find(id); var res = _context.Reservation.Find(petRes.ReservationId); var pet = _context.Pet.Find(petRes.PetId); var petVacs = _context.PetVaccination.Where(x => x.PetId == pet.PetId).ToList(); res.Status = 3; foreach (var singlePetVac in petVacs) { singlePetVac.VaccinationChecked = true; _context.PetVaccination.Update(singlePetVac); } _context.Reservation.Update(res); _context.Pet.Update(pet); _context.SaveChanges(); return(RedirectToAction("Contract", new { id = id })); } }
public ActionResult Create(Pet model, int?ownerId, IFormCollection form) { int userId = Convert.ToInt32(User.Identity.Name); if (ownerId == null) { ownerId = userId; } if (!User.IsInRole("Clerk") && userId != ownerId) { return(Forbid()); } ViewBag.Vaccinations = _context.Vaccination.ToList(); ViewBag.Owner = _context.Owner.Find(ownerId); model.OwnerId = ownerId.Value; var vaccinations = _context.Vaccination.ToList(); ViewBag.Vaccinations = vaccinations; var checkedIds = form["VaccinationChecked"].ToList(); List <PetVaccination> petVaccinations = new List <PetVaccination>(); ViewBag.PetVaccinations = petVaccinations; foreach (var vac in vaccinations) { DateTime expiryDate; bool vaccinationChecked = checkedIds.Contains(vac.VaccinationId.ToString()); if (DateTime.TryParse(form["Vaccination:" + vac.VaccinationId], out expiryDate)) { PetVaccination pv = new PetVaccination(); petVaccinations.Add(pv); pv.VaccinationId = vac.VaccinationId; pv.ExpiryDate = expiryDate; pv.VaccinationChecked = vaccinationChecked; } } if (!ModelState.IsValid) { return(View(model)); } else { try { var owner = _context.Owner.Where(o => o.OwnerId == ownerId); model.OwnerId = ownerId.Value; _context.Pet.Add(model); _context.SaveChanges(); foreach (var pv in petVaccinations) { pv.PetId = model.PetId; _context.PetVaccination.Add(pv); } _context.SaveChanges(); return(RedirectToAction(nameof(Index))); } catch { return(View(model)); } } }