public static ActorClaim ToModel(this ActorClaimRequest actorClaimContract) { return(new ActorClaim { ActorId = actorClaimContract.ActorId.Value, ClaimId = actorClaimContract.ClaimId.Value, EntityId = actorClaimContract.EntityId.Value }); }
public async Task <IActionResult> Create([FromBody] ActorClaimRequest newClaim) { var newClaimInfo = _claimCoreController.Get(newClaim.ClaimId.Value); if (newClaimInfo.ClaimScope == ClaimScope.Global) { newClaim.EntityId = Platform.AllId; } if ((await _authorizationService.AuthorizeAsync(User, newClaim.EntityId, HttpContext.ScopeItems(newClaimInfo.ClaimScope))).Succeeded) { var claimScope = _claimCoreController.Get(newClaim.ClaimId.Value).ClaimScope; var creatorClaims = _actorClaimCoreController.GetActorClaimsForEntity(int.Parse(User.Identity.Name), newClaim.EntityId.Value, claimScope); if (creatorClaims.Select(cc => cc.Id).Contains(newClaim.ClaimId.Value)) { var claim = newClaim.ToModel(); _actorClaimCoreController.Create(claim); var claimContract = claim.ToContract(); return(new ObjectResult(claimContract)); } } return(Forbid()); }