示例#1
0
        public async Task <IActionResult> CreateUserIndex(AdminToolsViewModel model)
        {
            var user = new Rock_MarketUser
            {
                FirstName = model.createUser.FirstName,
                LastName  = model.createUser.LastName,
                UserName  = model.createUser.Email,
                Email     = model.createUser.Email,
                Address   = model.createUser.Address,
                City      = model.createUser.City,
                State     = model.createUser.State
            };

            var result = await userManager.CreateAsync(user, model.createUser.Password);

            if (result.Succeeded)
            {
                // This usermanager is for assigning a role to every new account created.
                userManager.AddToRoleAsync(user, "User").Wait();
                return(RedirectToAction("Index"));
            }

            foreach (var error in result.Errors)
            {
                ModelState.AddModelError("", error.Description);
            }
            return(View("Index"));
        }
示例#2
0
        public async Task <IActionResult> CreateRoleIndex(AdminToolsViewModel model)
        {
            if (ModelState.IsValid)
            {
                // We just need to specify a unique role name to create a new role
                IdentityRole identityRole = new IdentityRole
                {
                    Name = model.createRole.RoleName
                };

                // Saves the role in the underlying AspNetRoles table
                IdentityResult result = await roleManager.CreateAsync(identityRole);

                if (result.Succeeded)
                {
                    return(RedirectToAction("index", "admin"));
                }

                foreach (IdentityError error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }

            return(View("Index", model));
        }
示例#3
0
        public async Task <IActionResult> Index()
        {
            var users         = userManager.Users;
            var usersAndRoles = new AdminToolsViewModel();

            foreach (var user in userManager.Users)
            {
                var userRoles = await userManager.GetRolesAsync(user);

                DateTimeOffset?offset = user.LockoutEnd;

                // The way this LockoutEnd works is checking if theres a value, if there is one, it will convert it to local time. If not
                // then it will be just null.
                var model = new ListUsersViewModel
                {
                    Id                = user.Id,
                    FirstName         = user.FirstName,
                    LastName          = user.LastName,
                    Phone             = user.PhoneNumber,
                    Address           = user.Address,
                    City              = user.City,
                    State             = user.State,
                    Email             = user.Email,
                    LockoutEnabled    = user.LockoutEnabled,
                    AccessFailedCount = user.AccessFailedCount,
                    LockoutEnd        = offset.HasValue ? offset.Value.LocalDateTime.ToString("yyyy-MM-ddThh:mm") : null,
                    Roles             = userRoles
                };
                usersAndRoles.Users.Add(model);
            }

            usersAndRoles.Roles = roleManager.Roles.ToList();

            return(View(usersAndRoles));
        }
示例#4
0
        /// <summary>
        /// Загружает нужное представление
        /// </summary>
        /// <param name="typeView"></param>
        public void LoadView(ViewType typeView)
        {
            switch (typeView)
            {
            case ViewType.PRODUCTS:
                //загружаем вьюшку, ее вьюмодель
                Products          viewP = new Products();
                ProductsViewModel vmP   = new ProductsViewModel(this);
                //связываем их м/собой
                viewP.DataContext = vmP;
                //отображаем
                this.OutputView.Content = viewP;
                break;

            case ViewType.ADMIN_TOOLS:
                AdminTools          viewAT = new AdminTools();
                AdminToolsViewModel vmAT   = new AdminToolsViewModel(this);
                viewAT.DataContext      = vmAT;
                this.OutputView.Content = viewAT;
                break;
            }
        }
示例#5
0
        public async Task <IActionResult> EditUserIndex(AdminToolsViewModel model)
        {
            var user = await userManager.FindByIdAsync(model.Users[0].Id);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {model.Users[0].Id} cannot be found";
                return(View("NotFound"));
            }
            else
            {
                user.Email             = model.Users[0].Email;
                user.UserName          = model.Users[0].Email;
                user.FirstName         = model.Users[0].FirstName;
                user.LastName          = model.Users[0].LastName;
                user.PhoneNumber       = model.Users[0].Phone;
                user.Address           = model.Users[0].Address;
                user.City              = model.Users[0].City;
                user.State             = model.Users[0].State;
                user.LockoutEnabled    = model.Users[0].LockoutEnabled;
                user.AccessFailedCount = model.Users[0].AccessFailedCount;
                user.LockoutEnd        = DateTimeOffset.Parse(model.Users[0].LockoutEnd);

                var result = await userManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index"));
                }

                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }

                return(View("Index"));
            }
        }