Ejemplo n.º 1
0
        public ActionResult Create([Bind(Include = "Id, Name, CreatedById, Deleted")] Household household)
        {
            if (ModelState.IsValid)
            {
                string userId = User.Identity.GetUserId();
                household.CreatedById = userId;
                db.Households.Add(household);

                HouseholdUsersHelper helper = new HouseholdUsersHelper(db);
                helper.AddUserToHousehold(household.Id, userId);

                Budget budget = new Budget
                {
                    HouseholdId = household.Id,
                    household   = db.Households.Find(household.Id),
                    Name        = household.Name + "'s Budget",
                    Amount      = 0
                };
                db.Budgets.Add(budget);
                db.SaveChanges();

                return(RedirectToAction("Index", "Home"));
            }
            return(View(household));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> InviteLogin(InviteLoginViewModel model, int householdId)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, change to shouldLockout: true
            var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout : false);

            switch (result)
            {
            case SignInStatus.Success:
                //return RedirectToLocal(returnUrl);
                // Find the user Id and assign it to a variable. User.Identity.GetUserId() will not work because the user is not logged in until this process is completed.
                var user = SignInManager.AuthenticationManager.AuthenticationResponseGrant.Identity.GetUserId();

                // Call the helper to assign var user to the household.
                var db = new ApplicationDbContext();
                HouseholdUsersHelper helper = new HouseholdUsersHelper(db);
                helper.AddUserToHousehold(householdId, user);
                return(RedirectToAction("Index", "Home"));

            case SignInStatus.LockedOut:
                return(View("Lockout"));

            case SignInStatus.RequiresVerification:
            //return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return(View(model));
            }
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> InviteRegister(InviteRegisterViewModel model, int householdId)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, DisplayName = model.FirstName + " " + model.LastName
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    // Call the helper to assign var user to the household.
                    var db = new ApplicationDbContext();
                    HouseholdUsersHelper helper = new HouseholdUsersHelper(db);
                    helper.AddUserToHousehold(householdId, user.Id);

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Ejemplo n.º 4
0
        public ActionResult Leave(int id)
        {
            var user = User.Identity.GetUserId();
            HouseholdUsersHelper helper = new HouseholdUsersHelper(db);

            helper.RemoveUserFromHousehold(id, user);
            db.SaveChanges();
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 5
0
        public ActionResult UnAssign(AssignUsersViewModel model, int householdId, string userId)
        {
            if (ModelState.IsValid)
            {
                var household = db.Households.Find(householdId);
                var user      = db.Users.Find(userId);
                HouseholdUsersHelper helper = new HouseholdUsersHelper(db);

                helper.RemoveUserFromHousehold(household.Id, user.Id);
                return(RedirectToAction("Assign", "Households", new { id = household.Id }));
            }
            return(View(model));
        }
Ejemplo n.º 6
0
        // GET: Households/Assign/5
        public ActionResult Assign(int id)
        {
            var household = db.Households.Find(id);
            HouseholdUsersHelper helper = new HouseholdUsersHelper(db);
            var model = new AssignUsersViewModel();

            model.Household     = household;
            model.SelectedUsers = helper.ListAssignedUsers(id).ToArray();
            model.Users         = new MultiSelectList(model.SelectedUsers.Where(u => (u.DisplayName != "N/A" && u.DisplayName != "(Remove Assigned User)")).OrderBy(u => u.FirstName), "Id", "DisplayName", model.SelectedUsers);
            //model.Users = new MultiSelectList(db.Users.Where(u => (u.DisplayName != "N/A" && u.DisplayName != "(Remove Assigned User)")).OrderBy(u => u.FirstName), "Id", "DisplayName", model.SelectedUsers);

            return(View(model));
        }
Ejemplo n.º 7
0
        public ActionResult Create([Bind(Include = "Id,Name,OwnerId")] Household household)
        {
            if (ModelState.IsValid)
            {
                string userId = User.Identity.GetUserId();
                household.OwnerId = userId;
                db.Households.Add(household);

                HouseholdUsersHelper helper = new HouseholdUsersHelper(db);
                helper.AddUserToHousehold(household.Id, userId);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(household));
        }
Ejemplo n.º 8
0
        public ActionResult Assign(AssignUsersViewModel model)
        {
            var household = db.Households.Find(model.Household.Id);
            HouseholdUsersHelper helper = new HouseholdUsersHelper(db);

            foreach (var user in db.Users.Select(r => r.Id).ToList())
            {
                if (model.SelectedUsers != null)
                {
                    foreach (var item in model.SelectedUsers)
                    {
                        helper.RemoveUserFromHousehold(household.Id, item.Id);
                    }
                }
                return(RedirectToAction("Index", "Home"));
            }
            return(View(model));
        }