Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
        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"));
        }
Esempio n. 3
0
        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));
        }