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)); }
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)); }
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)); }
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)); }
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)); }
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")); }
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")); } }