示例#1
0
        // GET: Users/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var user = await _userManager.FindByIdAsync(id.ToString());

            if (user == null)
            {
                return(NotFound());
            }

            var vm = new UserCreateViewModel()
            {
                AppUser         = AppUserMapper.MapFromDAL(DAL.App.EF.Mappers.AppUserMapper.MapFromDomain(user)),
                AppUserRoles    = await _userManager.GetRolesAsync(user),
                ShopsSelectList = new SelectList(await _bll.Shops.GetShopByUserShopIdForDropDown(User.GetShopId()), nameof(Shop.Id), nameof(Shop.ShopName), user.ShopId),
                RolesSelectList = new SelectList(await _roleManager.Roles.ToListAsync(), nameof(AppRole.Name), nameof(AppRole.Name))
            };

            PreSelect(vm.AppUserRoles, vm.RolesSelectList);

            return(View(vm));
        }
示例#2
0
        // GET: Users
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?pageNumber)
        {
            ViewData["CurrentSort"]       = sortOrder;
            ViewData["NameSortParam"]     = string.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewData["LastNameSortParam"] = sortOrder == "lastname" ? "lastname_desc" : "lastname";
            ViewData["EmailSortParam"]    = sortOrder == "email" ? "email_desc" : "email";
            ViewData["AddressSortParam"]  = sortOrder == "address" ? "address_desc" : "address";
            ViewData["ShopSortParam"]     = sortOrder == "shop" ? "shop_desc" : "shop";

            if (searchString != null)
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewData["CurrentFilter"] = searchString;

            var users = await _bll.AppUsers.AllAsyncByShop(User.GetShopId(), sortOrder, searchString);

            var allUsersAndRoles = new List <UserCreateViewModel>();

            foreach (var user in users)
            {
                var tempUser = DAL.App.EF.Mappers.AppUserMapper.MapFromDAL(AppUserMapper.MapFromBLL(user));
                if (!await _userManager.IsInRoleAsync(tempUser, "Admin"))
                {
                    allUsersAndRoles.Add(new UserCreateViewModel()
                    {
                        AppUser      = user,
                        AppUserRoles = await _userManager.GetRolesAsync(tempUser)
                    });
                }
            }
            return(View(PaginatedList <UserCreateViewModel> .Create(allUsersAndRoles, pageNumber ?? 1, 10, null)));
        }
示例#3
0
        public async Task <IActionResult> Edit(int id, UserCreateViewModel vm)
        {
            if (id != vm.AppUser.Id)
            {
                return(NotFound());
            }

            var roles = await _userManager.GetRolesAsync(DAL.App.EF.Mappers.AppUserMapper.MapFromDAL(AppUserMapper.MapFromBLL(vm.AppUser)));

            var user = await _userManager.FindByIdAsync(id.ToString());

            if (id != User.GetUserId())
            {
                await _userManager.RemoveFromRolesAsync(user, roles.ToArray());

                if (vm.SelectedRoles != null && id != User.GetUserId())
                {
                    foreach (var role in vm.SelectedRoles)
                    {
                        await _userManager.AddToRoleAsync(user, role);
                    }
                }
                user.FirstName = vm.AppUser.FirstName;
                user.LastName  = vm.AppUser.LastName;
                user.ShopId    = vm.AppUser.ShopId;
                user.Aadress   = vm.AppUser.Aadress;

                if (ModelState.IsValid)
                {
                    await _userManager.UpdateAsync(user);

                    await _bll.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
            }

            vm.ShopsSelectList = new SelectList(await _bll.Shops.GetShopByUserShopIdForDropDown(User.GetShopId()), nameof(Shop.Id), nameof(Shop.ShopName),
                                                vm.AppUser.ShopId);
            vm.RolesSelectList = new SelectList(await _roleManager.Roles.ToListAsync(), nameof(AppRole.Name), nameof(AppRole.Name));

            PreSelect(vm.AppUserRoles, vm.RolesSelectList);

            return(View(vm));
        }