public async Task <ActionResult> Invite(InviteHouseholdViewModel vm)
        {
            var invite = new Invite();

            invite.InviterId   = User.Identity.GetUserId();
            invite.InviteeId   = vm.UserId;
            invite.HouseholdId = vm.InviteHouseholdId;
            invite.Household   = db.Households.Find(vm.HouseholdId);
            var invitee = db.Users.Find(invite.InviteeId);

            invitee.Invites.Add(invite);
            invite.InviteText = String.Format("{0} invited you to join their household.", db.Users.Find(invite.InviterId).FullName);
            db.SaveChanges();
            await InviteAlert(User.Identity.GetFullName(), invite.InviteeId, invite.Id);

            return(RedirectToAction("Index", "Home"));
        }
        public ActionResult Invite()
        {
            var user = db.Users.Find(User.Identity.GetUserId());
            InviteHouseholdViewModel vm = new InviteHouseholdViewModel();

            vm.InviteHouseholdId = user.Household.Id;
            var users = db.Users.Where(u =>
                                       !u.Invites.Any(i => i.Accepted == false && i.HouseholdId == user.HouseholdId)
                                       )
                        .Where(u => u.HouseholdId != user.HouseholdId)
                        .ToList();

            if (users.Count() > 0)
            {
                vm.UserList = new SelectList(users.OrderBy(u => u.LastName), "Id", "UserName", vm.UserId);
            }
            return(View(vm));
        }