public ActionResult Create([Bind(Include = "Name")] Household household) { if (ModelState.IsValid) { db.Households.Add(household); db.SaveChanges(); var headOfHouseHold = User.Identity.GetUserId(); HouseholdsHelper.AddUserToHousehold(headOfHouseHold, household.Id); UserRoleHelper.AddUserToRole(headOfHouseHold, "HeadOfHouseHold"); household.HouseholdCreatorId = headOfHouseHold; household.Created = DateTimeOffset.Now; return(RedirectToAction("Details", "Households")); } return(View(household)); }
public ActionResult LeaveHousehold() { var userId = User.Identity.GetUserId(); if (User.IsInRole("HeadOfHouseHold")) { var householdId = db.Users.Find(userId).HouseholdId; UserRoleHelper.RemoveUserFromRole(userId, "HeadOfHousehold"); HouseholdsHelper.RemoveUserFromHousehold(userId); var members = db.Users.Where(u => u.HouseholdId == householdId).ToList(); var roleHelper = new UserRoleHelper(); foreach (var member in members) { if (roleHelper.IsUserInRole(member.Id, "Member")) { UserRoleHelper.RemoveUserFromRole(member.Id, "Member"); UserRoleHelper.AddUserToRole(member.Id, "HeadOfHousehold"); break; } } return(RedirectToAction("ProfileView", "Account")); } else { UserRoleHelper.RemoveUserFromRole(userId, "Member"); HouseholdsHelper.RemoveUserFromHousehold(userId); Household household = db.Households.Find(userId); if (household.Users.Count == 0) { household.Deleted = true; } return(RedirectToAction("ProfileView", "Account")); } }