public virtual ActionResult AddPermissionsPost([FromBody] AddPermisionsPageModel model) { if (model is null) { throw new ArgumentNullException(nameof(model)); } IRepository <SecurityGroup> securityGroupRepository = this.ServiceProvider.GetService <IRepository <SecurityGroup> >(); foreach (Type t in TypeFactory.GetDerivedTypes(typeof(Entity))) { Type repositoryType = typeof(IEntityRepository <>).MakeGenericType(t); IEntityRepository permissionableEntityRepository = (IEntityRepository)this.ServiceProvider.GetService(repositoryType); using IWriteContext context = permissionableEntityRepository.WriteContext(); IEnumerable Targets = permissionableEntityRepository.FindRange(model.Guids.Select(g => Guid.Parse(g))); List <SecurityGroup> Groups = securityGroupRepository.FindRange(model.SecurityGroups.Select(g => g.Guid).ToArray()).ToList(); foreach (Entity?target in Targets) { if (target is null) { continue; } foreach (SecurityGroup group in Groups) { this.EntityPermissionsRepository.AddPermission(target, group, model.TypeToAdd); } } } return(this.Content("Permissions successfully added")); }
public virtual ActionResult AddPermissionsGet(AddPermisionsPageModel model) { return(this.View(model)); }