public async Task <ActionResult> Join(JoinInvitationViewModel invitation) { if (ModelState.IsValid) { var user = db.Users.Find(User.Identity.GetUserId()); var userRole = roleHelper.ListUserRoles(user.Id).FirstOrDefault(); if (userRole != null) { roleHelper.RemoveUserFromRole(user.Id, userRole); } roleHelper.AddUserToRole(user.Id, "Member"); user.HouseholdId = invitation.HouseholdId; var invite = db.Invitations.Find(invitation.Id); notifyHelp.DidTheyJoinUp(invite); inviteHelp.MarkAsInvalid(invitation.Id); db.SaveChanges(); await ControllerContext.HttpContext.RefreshAuthentication(user); var houseName = db.Households.Find(invitation.HouseholdId).Name; TempData["Appointed"] = $"You joined the '{houseName}' household!"; return(RedirectToAction("Index", "Home")); } return(View(invitation)); }
// GET: Home/Index public ActionResult Index() { var user = db.Users.Find(User.Identity.GetUserId()); if (User.IsInRole("Head_Of_House") || User.IsInRole("Admin")) { var invitations = user.Household.Invitations.Where(i => i.HouseholdId == user.HouseholdId); foreach (var invite in invitations) { notifyHelp.DidTheyJoinUp(invite); } } var myHouse = new Household(); if (user.HouseholdId == null && user.HouseholdId != 0) { myHouse.Id = 0; } else { myHouse.Id = (int)user.HouseholdId; } return(View(myHouse)); }