public async Task <ActionResult> Create([Bind(Include = "Id,Name")] Household household) { if (ModelState.IsValid) { db.Households.Add(household); db.SaveChanges(); //#1 Update user created to reference household var userId = User.Identity.GetUserId(); var user = db.Users.Find(userId); user.HouseholdId = household.Id; //#2 whoever creates HH inherits role of HOH roleHelper.AddUserToRole(userId, RoleName.HOH); db.SaveChanges(); await AuthorizerHelper.ReauthorizeUserAsync(userId); return(RedirectToAction("DashBoard")); } return(View(household)); }
public async Task <ActionResult> AcceptRegister(AcceptRegisterViewModel model, string keyCode) { var invite = db.Invitations.FirstOrDefault(i => i.KeyCode.ToString() == keyCode); if (model.Keycode.ToString() == keyCode) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, DisplayName = model.DisplayName, HouseholdId = invite.HouseholdId }; await UserManager.CreateAsync(user, model.Password); db.SaveChanges(); var userId = UserManager.FindByEmail(model.Email).Id; var newUser = db.Users.Find(userId); roleHelper.AddUserToRole(userId, RoleName.Member); invite.Accepted = DateTime.Now; invite.Expired = true; db.SaveChanges(); await AuthorizerHelper.ReauthorizeUserAsync(userId); return(RedirectToAction("Dashboard", "Households")); } return(View(model)); }