public async Task <IdentityResult> AddClaimAsync(int id, Claim claim, IList <Claim> existingClaims) { var role = await GetByIdAsync(id); var claims = await GetClaimsAsync(role.Name); ClaimChecker.CheckClaimStatus(claim, claims, existingClaims); return(await _roleManager.AddClaimAsync(role, claim)); }
public async Task <IdentityResult> AddClaimAsync(int id, Claim claim, IList <Claim> existingClaims) { var user = await GetByIdAsync(id); var claims = await GetUserClaimsAsync(user.Id); ClaimChecker.CheckClaimStatus(claim, claims, existingClaims); return(await _userManager.AddClaimAsync(user, claim)); }
public async Task <IList <Claim> > AddClaimsAsync(int id, IList <Claim> claims, IList <Claim> existingClaims) { var addedClaims = new List <Claim>(); var role = await GetByIdAsync(id); var claimsInRole = await GetClaimsAsync(role.Name); foreach (var claim in claims) { Claim checkedClaim; bool claimCheckSuccess = false; try { //CheckClaimStaus metodu hata oluştuğunda Exception fırlatıyor. //Fakat bu metotta claim değerleri bir dizi halinde olduğu için //Başarısız işlemlerde hata üretilmesini değil, diziye eklenmemesini istiyoruz //Bu yüzden boş bir try catch bloğu içerisine alındı checkedClaim = ClaimChecker.CheckClaimStatus(claim, claimsInRole, existingClaims); claimCheckSuccess = true; } catch (KeyNotFoundException) { throw new KeyNotFoundException(nameof(Claim)); } catch { } if (claimCheckSuccess) { await _roleManager.AddClaimAsync(role, claim); addedClaims.Add(claim); } } return(addedClaims); }