示例#1
0
        public ActionResult AdoptionInfo(int id)
        {
            var adoption = db.Adoptions.Find(id);

            if (adoption == null)
            {
                return(HttpNotFound());
            }

            var currentUserId    = User.Identity.GetUserId();
            var owner            = db.Users.Find(adoption.PetOwnerId);
            var interestedUserId = db.Users.Find(adoption.InterestedUserId);
            var pet = db.Pets.Find(adoption.AnimalId);

            var adoptionVM = new AdoptionViewModel
            {
                Adoption            = adoption,
                CurrentUserId       = currentUserId,
                OwnerInfo           = owner,
                InterestedPartyInfo = interestedUserId,
                PetInfo             = pet
            };

            return(View("AdoptionInfo", adoptionVM));
        }
示例#2
0
        public ActionResult CancelAdoption(int id)
        {
            var adoption = db.Adoptions.Find(id);

            if (adoption == null)
            {
                return(HttpNotFound());
            }

            var owner           = db.Users.Find(adoption.PetOwnerId);
            var interestedParty = db.Users.Find(adoption.InterestedUserId);
            var pet             = db.Pets.Find(adoption.AnimalId);
            var currentUserId   = User.Identity.GetUserId();

            adoption.AdoptionStatusId = AdoptionStatus.cancelled;
            adoption.AdoptionEnd      = DateTime.Now;

            db.SaveChanges();

            var adoptionVM = new AdoptionViewModel
            {
                Adoption            = adoption,
                CurrentUserId       = currentUserId,
                OwnerInfo           = owner,
                InterestedPartyInfo = interestedParty,
                PetInfo             = pet
            };

            return(View("AdoptionInfo", adoptionVM));
        }
示例#3
0
        public IActionResult ToAdopt(AdoptionViewModel model)
        {
            return(SafeResultResponse(() =>
            {
                if (!model.Pets.Any())
                {
                    NotifyError(Message.MS_008);

                    return RedirectToAction(nameof(ToAdopt), model.Responsible.Id);
                }

                _command.Execute(model);

                if (!_command.HasErrors())
                {
                    NotifySucess();

                    return RedirectToHome();
                }

                NotifyError(string.Join(",", _command.GetErrors()));

                return RedirectToAction(nameof(ToAdopt), model.Responsible.Id);
            }, err: RedirectToHome));
        }
示例#4
0
        public IActionResult Adopt(int AnimalID)
        {
            //Get user name
            var  userName = User.FindFirstValue(ClaimTypes.Name);
            User user     = _userService.FindByUsername(userName);

            var vm = new AdoptionViewModel
            {
                Animal = _animalService.FindByID(AnimalID),
                Stay   = _stayService.FindRelatedStay(AnimalID),
                User   = user
            };

            return(View(vm));
        }
示例#5
0
        public ActionResult StartTransfer(int id)
        {
            var adoption = db.Adoptions.Find(id);

            if (adoption == null)
            {
                return(HttpNotFound());
            }

            var owner           = db.Users.Find(adoption.PetOwnerId);
            var interestedParty = db.Users.Find(adoption.InterestedUserId);
            var pet             = db.Pets.Find(adoption.AnimalId);
            var currentUserId   = User.Identity.GetUserId();

            if (adoption.InterestedUserId == currentUserId)
            {
                adoption.InterestedUserPermission = true;
            }

            else if (adoption.PetOwnerId == currentUserId)
            {
                adoption.PetOwnerPermission = true;
            }

            if (adoption.InterestedUserPermission && adoption.PetOwnerPermission)
            {
                adoption.AdoptionStatusId         = AdoptionStatus.awaitingTransfer;
                adoption.InterestedUserPermission = false;
                adoption.PetOwnerPermission       = false;
            }

            db.SaveChanges();

            var adoptionVM = new AdoptionViewModel
            {
                Adoption            = adoption,
                CurrentUserId       = currentUserId,
                OwnerInfo           = owner,
                InterestedPartyInfo = interestedParty,
                PetInfo             = pet
            };

            return(View("AdoptionInfo", adoptionVM));
        }
示例#6
0
        public IActionResult Adopt(AdoptionViewModel AdoptionViewModel)
        {
            try
            {
                Console.WriteLine(AdoptionViewModel);
                Stay   stay   = _stayService.FindByID(AdoptionViewModel.Stay.ID);
                Animal animal = _animalService.FindByID(AdoptionViewModel.Animal.ID);

                stay.AdoptedBy    = AdoptionViewModel.User.Email;
                stay.Animal       = animal;
                stay.AdoptionDate = DateTime.Now;

                _stayService.AdoptAnimal(stay);

                return(Redirect("/Stay/Index"));
            }
            catch (Exception e)
            {
                Console.WriteLine("Error occured" + e); // TODO: use logger service for this
            }

            return(Redirect("/Stay/Index"));
        }
示例#7
0
        public IActionResult RequestAdoption([FromBody] AdoptionViewModel adoptionViewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    NotifyInvalidModelError();
                    return(RequestResponse(HttpStatusCode.BadRequest, isError: true, result: "Os dados fornecidos são inválidos"));
                }

                _adoptionService.InsertAdoption(adoptionViewModel.AnimalId, adoptionViewModel.AdopterId);

                return(IsAValidOperation()
                    ? RequestResponse(HttpStatusCode.Created, "hipets/api/v1/adoptions")
                    : RequestResponse(HttpStatusCode.NotFound, "hipets/api/v1/adoptions", isError: true));
            }
            catch (Exception ex)
            {
                var error = JsonConvert.SerializeObject(ex);
                _logger.LogError(error);

                return(RequestResponse(HttpStatusCode.BadRequest, isError: true, result: "Ocorreu um erro ao solicitar adoção"));
            }
        }