Beispiel #1
0
        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
            });
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
 public IActionResult AssignPet(AssignPetRequest request, int id)
 {
     try
     {
         var response = _dbService.AssignPet(request, id);
         return(Created("Pet Assign", response));
     }
     catch (PetDoesntExist ex)
     {
         return(NotFound(ex.Message));
     }
     catch (VolunteerDoesnotExist ex1)
     {
         return(NotFound(ex1.Message));
     }
     catch (VolunteerHasSupervisor ex2)
     {
         return(BadRequest(ex2.Message));
     }
 }
Beispiel #4
0
        public IActionResult AssignPetToVolunteer(int id, AssignPetRequest request)
        {
            request.IdVolunteer = id;

            try
            {
                _dbService.AssignPetToVolunteer(request);
            }catch (NoSuchVolunteerException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (NoSuchPetException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (VolunteerAlreadyHasSupervisporException ex)
            {
                return(BadRequest(ex.Message));
            }


            return(Ok());
        }