private async Task <List <string> > GetGrantedPermissionAsync(long userId, long?branchId)
        {
            var cacheItem = await _userManager.GetUserPermissionCacheItemAsync(userId, branchId);

            if (cacheItem == null)
            {
                return(new List <string>());
            }
            var permissions = new List <string>();

            foreach (var item in cacheItem.RoleIds)
            {
                var g = await roleManager.GetGrantedPermissionsAsync(item);

                permissions.AddRange(g.Select(e => e.Name));
            }
            return(permissions.Union(cacheItem.GrantedPermissions).ToList());
        }