using Microsoft.AspNetCore.Identity; using Raven.Client.Documents.Session; using System.Collections.Generic; using System.Linq; using System.Security.Claims; using System.Threading; using System.Threading.Tasks; using zero.Core.Entities; namespace zero.Core.Identity { public partial class RoleStore : IRoleClaimStore where TRole : class, IUserRole { /// public Task AddClaimAsync(TRole role, Claim claim, CancellationToken cancellationToken = default) { role.Claims.Add(new UserClaim(claim)); return Task.CompletedTask; } /// public Task> GetClaimsAsync(TRole role, CancellationToken cancellationToken = default) { return Task.FromResult((IList)role.Claims.Select(claim => claim.ToClaim()).ToList()); } /// public Task RemoveClaimAsync(TRole role, Claim claim, CancellationToken cancellationToken = default) { UserClaim userClaim = new UserClaim(claim); role.Claims = role.Claims.Except(new List() { userClaim }, new UserClaimComparer()).ToList(); return Task.CompletedTask; } } }