public async Task <IActionResult> Decline(int RequestId, [Bind("RequestId,RequestStatusId,PassengerId,PostId")] Request request, string PassengerEmail) { if (RequestId != request.RequestId) { return(NotFound()); } string Username = HttpContext.Session.GetString("Username"); if (ModelState.IsValid) { try { /*request = await _context.Request * .Include(r => r.Passenger) * .Include(r => r.Post) * .Include(r => r.RequestStatus) * .FirstOrDefaultAsync(m => m.RequestId == RequestId);*/ request = await _requestLogic.GetSingleRequest(RequestId); _requestLogic.DeclineRequest(request); await _requestLogic.Save(); } catch (DbUpdateConcurrencyException) { if (!RequestExists(request.RequestId)) { return(NotFound()); } else { throw; } } string body = @"<h2>Your ride request to " + Username + " was declined</h2><br />" + "<p>You may log in to try looking for another driver</p>"; string subject = "Conestoga Carpool -- Request Declined"; // Send email to passenger _requestLogic.SendEmail(subject, body, PassengerEmail); // Redirect to driverIndex return(RedirectToAction(nameof(DriverIndex), new { DriverId = request.Post.DriverId })); } ViewData["PassengerId"] = new SelectList(_context.User, "UserId", "Email", request.PassengerId); ViewData["PostStatusId"] = new SelectList(_context.PostStatus, "PostStatusId", "PostStatusDescription", request.Post.PostStatusId); ViewData["RequestStatusId"] = new SelectList(_context.RequestStatus, "RequestStatusId", "RequestStatusDescription", request.RequestStatusId); return(View(request)); }