public async Task <ApiResponse <CustomRoleVm> > UpdateRole([FromBody] CustomRoleVm customRoleVm)
        {
            var dbResponse = await repository.CustomRoles.UpdateAsync(customRoleVm);

            if (dbResponse.Success)
            {
                var roleVm = new CustomRoleVm(dbResponse.Response);

                var allAppRoles = roleManager.Roles.ToList();

                var roleAppRolesIds = customRoleVm.AppRoles.Where(x => x.IsSelected).Select(x => x.Id).ToList();

                roleVm.AppRoles.AddRange(allAppRoles.Select(x => new AppRoleVm
                {
                    Id          = x.Id,
                    Name        = x.Name,
                    DisplayName = x.DisplayName,
                    IsSelected  = roleAppRolesIds.Contains(x.Id)
                }).OrderBy(x => x.DisplayName));

                return(new ApiResponse <CustomRoleVm>
                {
                    Response = roleVm,
                    Message = dbResponse.Message
                });
            }

            return(new ApiResponse <CustomRoleVm>
            {
                ErrorMessage = dbResponse.ErrorMessage
            });
        }
        public async Task <ApiResponse <CustomRoleVm> > AddRole([FromBody] CustomRoleVm customRoleVm)
        {
            var dbResult = await repository.CustomRoles.Add(customRoleVm);

            if (dbResult.Success)
            {
                var customRole = new CustomRoleVm(dbResult.Response);

                var appRolesIds = customRoleVm.AppRoles.Where(x => x.IsSelected).Select(x => x.Id).ToList();

                var allAppRoles = roleManager.Roles.ToList();

                customRole.AppRoles.AddRange(allAppRoles.Select(x => new AppRoleVm
                {
                    Id          = x.Id,
                    DisplayName = x.DisplayName,
                    IsSelected  = appRolesIds.Contains(x.Id)
                }).OrderBy(x => x.DisplayName));

                return(new ApiResponse <CustomRoleVm>
                {
                    Message = dbResult.Message,
                    Response = customRole
                });
            }

            return(new ApiResponse <CustomRoleVm>
            {
                ErrorMessage = dbResult.ErrorMessage
            });
        }