public async Task<IActionResult> CreateRole(IndexAndCreateRole model)
        {
            model.RoleName = model.RoleName.Trim();
            if (string.IsNullOrEmpty(model.RoleName))
            {
                TempData["message"] = "Role Name cannot be empty";
                return RedirectToAction("Index");
            }

            var role = await roleManager.FindByIdAsync(model.RoleName);
            if (role != null)
            {
                TempData["message"] = "This role is existing already";
            }
            else
            {
                try
                {
                    IdentityRole newRole = new IdentityRole { Name = model.RoleName };
                    var result = await roleManager.CreateAsync(newRole);
                    if (result.Succeeded)
                    {
                        TempData["message"] = $"Role added: {model.RoleName} ";
                        return RedirectToAction("Index");
                    }
                    else
                    {
                        foreach (var error in result.Errors)
                        {
                            ModelState.AddModelError("", error.Description);
                        }
                    }
                }
                catch (Exception ex)
                {

                    TempData["message"] = ex.GetBaseException().Message;
                }
            }

            return RedirectToAction("Index");
        }
 public IActionResult Index()
 {
     var model = new IndexAndCreateRole();
     model.RolesList = roleManager.Roles.OrderBy(a => a.Name).ToList();
     return View(model);
 }