public async Task <IActionResult> EditRole(int id)
        {
            UpdateApplicationRoleDto applicationRoleToUpdate = await _roleManager.Roles.Where(r => r.Id == id)
                                                               .Select(r => new UpdateApplicationRoleDto
            {
                Description = r.Description,
                DisplayName = r.DisplayName,
                Name        = r.Name,
                RoleId      = r.Id
            })
                                                               .FirstOrDefaultAsync();


            if (applicationRoleToUpdate is null)
            {
                ViewBag.ErrorMessage = "سطح دسترسی مورد نظر وجود ندارد.";
                return(View("NotFound"));
            }

            return(View(applicationRoleToUpdate));
        }
        public async Task <IActionResult> EditRole(UpdateApplicationRoleDto dto, [FromServices] ApplicationContext _db)
        {
            if (ModelState.IsValid)
            {
                ApplicationRole applicationRoleToUpdate = await _roleManager.FindByIdAsync(dto.RoleId.ToString());

                if (applicationRoleToUpdate is null)
                {
                    return(NotFound());
                }
                applicationRoleToUpdate.Name             = dto.Name;
                applicationRoleToUpdate.DisplayName      = dto.DisplayName;
                applicationRoleToUpdate.Description      = dto.Description;
                applicationRoleToUpdate.ConcurrencyStamp = Guid.NewGuid().ToString();

                await _roleManager.UpdateNormalizedRoleNameAsync(applicationRoleToUpdate);

                await _db.SaveChangesAsync();

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

            return(View(dto));
        }