public async Task <ActionResult> Details(IdentityRoleVM rolePar)
        {
            var role = await _repo.FindById(rolePar.Id);

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

            var isSuccess = await _repo.AddUserByRole(role.Id, rolePar.NewUserName);

            var users = await _repo.FindAllUsersByRole(rolePar.Id);

            if (users.Count > 0)
            {
                rolePar.Users = users.ToList();
            }
            else
            {
                rolePar.Users = new List <ApplicationUser>();
            }

            if (!isSuccess)
            {
                ModelState.AddModelError(string.Empty, "Could not add " + rolePar.NewUserName);
            }
            return(View(rolePar));
        }
        public async Task <ActionResult> Edit(IdentityRoleVM role)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(role));
                }
                var model = await _repo.FindById(role.Id);

                if (model != null && role != null)
                {
                    model.Name = role.Name;
                }

                var result = await _repo.Update(model);

                if (result != string.Empty)
                {
                    return(RedirectToAction(nameof(Details), new { id = result }));
                }
            }
            catch (Exception x)
            {
                ModelState.AddModelError(string.Empty, x.InnerException.Message);
            }
            return(View(role));
        }
        public IActionResult Create([Bind("RoleName")] IdentityRoleVM role)
        {
            if (ModelState.IsValid)
            {
                CreateRole(role.RoleName);
                return(RedirectToAction(nameof(Index)));
            }

            return(View(role));
        }
        public async Task <List <IdentityUserVM> > GetUserByRole(IdentityRoleVM role)
        {
            List <IdentityUserVM> users = new List <IdentityUserVM>();

            foreach (var i in _context.Users)
            {
                users.Add(new IdentityUserVM
                {
                    UserID   = i.Id,
                    UserName = i.UserName,
                    Roles    = await _userManager.GetRolesAsync(i)
                });
            }


            return(users.Where(u => u.Roles.Contains(role.RoleName)).ToList());
        }
        public async Task <ActionResult> Create(IdentityRoleVM role)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(role));
                }
                var model  = new IdentityRole(role.Name);
                var result = await _repo.Create(model);

                if (result != string.Empty)
                {
                    return(RedirectToAction(nameof(Details), new { id = result }));
                }
            }
            catch (Exception x)
            {
                ModelState.AddModelError(string.Empty, x.InnerException.Message);
            }
            return(View(role));
        }
        public IActionResult Create()
        {
            IdentityRoleVM role = new IdentityRoleVM();

            return(View(role));
        }