public async Task <IActionResult> ManageClaims(UserCliamsViewModel model)
        {
            var user = await Usermanager.FindByIdAsync(model.userId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {model.userId} cannot be found";
                return(View("NotFound"));
            }

            // Get all the user existing claims and delete them
            var claims = await Usermanager.GetClaimsAsync(user);

            var result = await Usermanager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Cannot remove user existing claims");
                return(View(model));
            }

            // Add all the claims that are selected on the UI

            result = await Usermanager.AddClaimsAsync(user,
                                                      model.Claims.Select(c => new Claim(c.ClaimType, c.IsSelected ? "true" : "false")));

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Cannot add selected claims to user");
                return(View(model));
            }

            return(RedirectToAction("EditUser", new { id = model.userId }));
        }
        public async Task <IActionResult> ManageClaims(string userId)
        {
            var user = await Usermanager.FindByIdAsync(userId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {userId} cannot be found";
                return(View("NotFound"));
            }
            var model = new UserCliamsViewModel()
            {
                userId = userId
            };
            var existingUserClaims = await Usermanager.GetClaimsAsync(user);

            foreach (Claim claim in ClaimStore.claimstore)
            {
                UserClaims userclaim = new UserClaims()
                {
                    ClaimType = claim.Type,
                    Value     = claim.Value
                };
                // If the user has the claim, set IsSelected property to true, so the checkbox
                // next to the claim is checked on the UI
                if (existingUserClaims.Any(c => c.Type == claim.Type && c.Value == "true"))
                {
                    userclaim.IsSelected = true;
                }
                model.Claims.Add(userclaim);
            }

            return(View(model));
        }