public AssignPetResponse AssignPet(AssignPetRequest request, int id) { var volunteerCheck = _context.Volunteers.FirstOrDefault(p => p.IdVolunteer == id); var petCheck = _context.Pets.FirstOrDefault(p => p.IdPet == request.IdPet); if (volunteerCheck == null) { throw new VolunteerDoesnotExist(); } if (petCheck == null) { throw new PetDoesntExist(); } if (volunteerCheck.IdSupervisor != null) { throw new VolunteerHasSupervisor(); } var pet = new Volunteer_Pet() { IdVolunteer = id, IdPet = request.IdPet, DateAccepted = request.DateAccepted }; _context.Volunteer_Pets.Add(pet); _context.SaveChanges(); return(new AssignPetResponse() { IdVolunteer = id, IdPet = request.IdPet, DateAccepted = request.DateAccepted }); }
public void AssignPetToVolunteer(PetRequest request) { if (_volunteerDbContext.Volunteers.Where(v => v.IdVolunteer == request.idVolunteer).Count() != 1) { throw new Exception(); } if (_volunteerDbContext.Pets.Where(pet => pet.IdPet == request.idPet).Count() != 1) { throw new Exception(); } if (_volunteerDbContext.Volunteers.Where(v => v.IdVolunteer == request.idVolunteer && v.IdSupervisor == null).Count() != 1) { throw new Exception(); } using (var trans = _volunteerDbContext.Database.BeginTransaction()) { Volunteer_Pet volunteer_Pet = new Volunteer_Pet() { idPet = request.idPet, idVolunteer = request.idVolunteer, DateAccepted = DateTime.Now }; _volunteerDbContext.Add <Volunteer_Pet>(volunteer_Pet); _volunteerDbContext.SaveChanges(); trans.Commit(); } }
public void AssignPetToVolunteer(AssignPetRequest request) { if (_context.Volunteer.Where(v => v.IdVolunteer == request.IdVolunteer).Count() != 1) { throw new NoSuchVolunteerException("No volunteer with id " + request.IdVolunteer + " found"); } if (_context.Pet.Where(pet => pet.IdPet == request.IdPet).Count() != 1) { throw new NoSuchPetException("No pet with id " + request.IdVolunteer + " found"); } if (_context.Volunteer.Where(v => v.IdVolunteer == request.IdVolunteer && v.IdSupervisor == null).Count() != 1) { throw new VolunteerAlreadyHasSupervisporException("Volunteer with id " + request.IdVolunteer + " Already Has Supervispor"); } using (var trans = _context.Database.BeginTransaction()) { Volunteer_Pet volunteer_Pet = new Volunteer_Pet() { IdPet = request.IdPet, IdVolunteer = request.IdVolunteer, DateAccepted = DateTime.Now }; _context.Add <Volunteer_Pet>(volunteer_Pet); _context.SaveChanges(); trans.Commit(); } }
public IActionResult AssignPet(int id, PetRequest request) { if (request.IdPet == null) { throw new Exception("Pet ID is not provided!"); } if (!_context.Pet.Any(e => e.IdPet == id)) { throw new Exception("Such pet doesn't exist!"); } if (!_context.Volunteer.Any(e => e.IdVolunteer == id)) { throw new Exception("Such volunteer doesn't exist"); } var volunteer = _context.Volunteer.Where(v => v.IdVolunteer == id).FirstOrDefault(); if (volunteer.IdSupervisor.HasValue) { throw new Exception("The given volunteer has a supervisor!"); } else { var volunteer_pet = new Volunteer_Pet() { DateAccepted = DateTime.Now, IdPet = request.IdPet, IdVolunteer = id }; _context.Volunteer_Pet.Add(volunteer_pet); _context.SaveChanges(); var petResponse = new PetResponse() { IdPet = request.IdPet }; return(Ok(petResponse)); } }