/// <summary>
        ///     Deletes all roles of a user
        /// </summary>
        /// <param name="manager"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public static IdentityResult Delete <TRole, TUser>(this UserRoleManager <TRole, TUser> manager,
                                                           TUser user)
            where TRole : IdentityRole
            where TUser : IdentityUser
        {
            if (manager == null)
            {
                throw new ArgumentNullException(IdentityConstants.Manager);
            }

            return(AsyncHelper.RunSync <IdentityResult>(() => manager.DeleteAsync(user)));
        }
        /// <summary>
        ///     Gets roles of a user
        /// </summary>
        /// <param name="manager"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public static List <IdentityRole> GetUserRoles <TRole, TUser>(this UserRoleManager <TRole, TUser> manager,
                                                                      string userId)
            where TRole : IdentityRole
            where TUser : IdentityUser
        {
            if (manager == null)
            {
                throw new ArgumentNullException(IdentityConstants.Manager);
            }

            var result = AsyncHelper.RunSync <IdentityUserRoleList>(() => manager.GetUserRoleListAsync(userId));

            return(result.List);
        }