public int Execute(ICopyClaimSetModel claimSet) { var newClaimSet = new Security.DataAccess.Models.ClaimSet { ClaimSetName = claimSet.Name, Application = _context.Applications.Single() }; var originalResourceClaims = _context.ClaimSetResourceClaims .Where(x => x.ClaimSet.ClaimSetId == claimSet.OriginalId) .Include(x => x.ResourceClaim) .Include(x => x.Action) .Include(x => x.AuthorizationStrategyOverride) .ToList(); _context.ClaimSets.Add(newClaimSet); foreach (var resourceClaim in originalResourceClaims) { var copyResourceClaim = new ClaimSetResourceClaim { ClaimSet = newClaimSet, Action = resourceClaim.Action, AuthorizationStrategyOverride = resourceClaim.AuthorizationStrategyOverride, ResourceClaim = resourceClaim.ResourceClaim }; _context.ClaimSetResourceClaims.Add(copyResourceClaim); } _context.SaveChanges(); return(newClaimSet.ClaimSetId); }
public int Execute(IAddClaimSetModel claimSet) { var newClaimSet = new Security.DataAccess.Models.ClaimSet { ClaimSetName = claimSet.ClaimSetName, Application = _context.Applications.Single() }; _context.ClaimSets.Add(newClaimSet); _context.SaveChanges(); return(newClaimSet.ClaimSetId); }
private void AddEnabledActionsToClaimSet(ResourceClaim modelResourceClaim, IReadOnlyCollection <ClaimSetResourceClaim> claimSetResourceClaimsToEdit, Security.DataAccess.Models.ClaimSet claimSetToEdit) { var actionsFromDb = _context.Actions.ToList(); var resourceClaimFromDb = _context.ResourceClaims.Single(x => x.ResourceClaimId == modelResourceClaim.Id); var recordsToAdd = new List <ClaimSetResourceClaim>(); if (modelResourceClaim.Create && claimSetResourceClaimsToEdit.All(x => x.Action.ActionName != Action.Create.Value)) { recordsToAdd.Add(new ClaimSetResourceClaim { Action = actionsFromDb.Single(x => x.ActionName == Action.Create.Value), ClaimSet = claimSetToEdit, ResourceClaim = resourceClaimFromDb }); } if (modelResourceClaim.Read && claimSetResourceClaimsToEdit.All(x => x.Action.ActionName != Action.Read.Value)) { recordsToAdd.Add(new ClaimSetResourceClaim { Action = actionsFromDb.Single(x => x.ActionName == Action.Read.Value), ClaimSet = claimSetToEdit, ResourceClaim = resourceClaimFromDb }); } if (modelResourceClaim.Update && claimSetResourceClaimsToEdit.All(x => x.Action.ActionName != Action.Update.Value)) { recordsToAdd.Add(new ClaimSetResourceClaim { Action = actionsFromDb.Single(x => x.ActionName == Action.Update.Value), ClaimSet = claimSetToEdit, ResourceClaim = resourceClaimFromDb }); } if (modelResourceClaim.Delete && claimSetResourceClaimsToEdit.All(x => x.Action.ActionName != Action.Delete.Value)) { recordsToAdd.Add(new ClaimSetResourceClaim { Action = actionsFromDb.Single(x => x.ActionName == Action.Delete.Value), ClaimSet = claimSetToEdit, ResourceClaim = resourceClaimFromDb }); } if (recordsToAdd.Any()) { _context.ClaimSetResourceClaims.AddRange(recordsToAdd); } }