예제 #1
0
        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));
        }
예제 #2
0
        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"));
            }
        }