Ejemplo n.º 1
0
        public IActionResult Complete(int id)
        {
            var user = userRepository.GetUserFromPrincipal(HttpContext.User);

            if (!userRepository.IsActiveUser(user))
            {
                return(new UnauthorizedResult());
            }

            var donation = donationRepository.GetById(id);

            if (donation == null)
            {
                return(new NotFoundResult());
            }

            //Verify that donation is owned by user
            if (donation.DonorId != user.Id)
            {
                return(new UnauthorizedResult());
            }

            if (donation.Status != DonationStatus.PendingPickup)
            {
                return(BadRequest("Donation must be accepted before it can be completed"));
            }

            donationRepository.CompleteDonation(id);
            return(Ok());
        }