/// <summary> /// Used to access the form where is possible to register a new adoption request /// </summary> /// <param name="id">Animal ID</param> /// <returns>Adoption Form</returns> public async Task <IActionResult> NewRequest(int?id) { AdoptionRequests adopt = new AdoptionRequests { Animal = _context.Animals.FirstOrDefault(a => a.AnimalId == id), User = await _userManager.GetUserAsync(User) }; return(View(adopt)); }
public async Task <IActionResult> NewRequest(int?id, [Bind("AnimalId,AdoptionType,StartDate,EndDate,Details")] AdoptionRequests request) { AdoptionRequests newRequest = new AdoptionRequests() { AnimalId = int.Parse(id.ToString()), UserId = (await _userManager.GetUserAsync(User)).Id, AdoptionType = request.AdoptionType, ProposalDate = DateTime.Now, StartDate = request.StartDate, EndDate = request.EndDate, Details = request.Details }; _context.AdoptionRequests.Add(newRequest); _context.SaveChanges(); AdoptionLogs newLog = new AdoptionLogs() { AdoptionRequestId = newRequest.AdoptionRequestId, AdoptionStateId = 1, Date = newRequest.ProposalDate, Details = newRequest.Details, UserId = newRequest.UserId }; _context.AdoptionLogs.Add(newLog); _context.SaveChanges(); Animal animal = _context.Animals.FirstOrDefault(a => a.AnimalId == id); String preSex; if (animal.Gender[0] == 'M') { preSex = "ao"; } else { preSex = "à"; } String message = "<p>O seu pedido de adoção " + preSex + " " + animal.Name + " encontra-se para análise. Quando tivermos uma resposta" + " será notificado.<p/> <img class='card - img - top img - fluid' id='pet - image' style='margin:auto; height: 25vw; object-fit: contain; ' src='" + newRequest.Animal.Image + "' alt='Card image cap'>"; _notificationService.Register(_context, new UserNotification() { Title = "Pedido de Adoção", Message = message, NotificationDate = DateTime.Now, UserId = newRequest.UserId }, _emailSender); return(RedirectToAction("MyNotifications", "UserNotifications")); }
public IActionResult Details(int?id) { if (id == null) { return(NotFound()); } AdoptionRequests adoptionRequests = _context.AdoptionRequests.Include(a => a.User) .Include(a => a.Animal) .Include(a => a.AdoptionLogs) .ThenInclude(p => p.AdoptionState) .FirstOrDefault(a => a.AdoptionRequestId == id); ViewBag.Animals = _context.Animals.Where(u => u.UserId == adoptionRequests.UserId).ToList(); if (adoptionRequests == null) { return(NotFound()); } return(View(adoptionRequests)); }