public async Task <JsonResult> EditEmployeeRoles(EmpRolesViewModel EmpRolVM)
        {
            ApplicationUser Emp = await userManager.FindByIdAsync(EmpRolVM.EmpId);

            var EmpCurrentRoles = await userManager.GetRolesAsync(Emp);

            if (EmpCurrentRoles != null && EmpCurrentRoles.Count > 0)
            {
                var removeFromRoles = await userManager.RemoveFromRolesAsync(Emp, EmpCurrentRoles);
            }

            foreach (var item in EmpRolVM.EmpRoles)
            {
                string roleName = item.role.ToString();
                if (item.IsSelected)
                {
                    var addedToRoles = await userManager.AddToRoleAsync(Emp, item.role.ToString());
                }
            }

            var isDeptManager = userManager.IsInRoleAsync(Emp, Roles.DepartmentManager.ToString());

            if (isDeptManager.Result)
            {
                Emp.FK_TeamID = null;
                Emp.Team      = null;
                var result = await userManager.UpdateAsync(Emp);
            }

            return(Json(Emp));;
        }
        public async Task <IActionResult> EditEmployeeRoles(string id)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser Emp = await userManager.FindByIdAsync(id);

                //---------Get The Roles before Updating
                var EmpCurrentRoles = await userManager.GetRolesAsync(Emp);

                List <IdentityRole> ExistingRoles = roleManager.Roles.ToList();
                EmpRolesViewModel   EmpRolVM      = new EmpRolesViewModel()
                {
                    EmpId = id
                };
                bool checkFlag = false;
                foreach (IdentityRole item in ExistingRoles)
                {
                    checkFlag = false;
                    for (int i = 0; i < EmpCurrentRoles.Count && !checkFlag; i++)
                    {
                        if (item.ToString() == EmpCurrentRoles[i])
                        {
                            checkFlag = true;
                            EmpRolVM.EmpRoles.Add(new RolesModel()
                            {
                                role = item, IsSelected = true
                            });
                        }
                    }
                    if (!checkFlag)
                    {
                        EmpRolVM.EmpRoles.Add(new RolesModel()
                        {
                            role = item, IsSelected = false
                        });
                    }
                }
                return(PartialView("_EmploeeRolesPartialView", EmpRolVM));
            }
            return(null);
        }