internal void Register <T, TPermissionCheck, TResult>(TPermissionCheck permissionCheck) where TResult : PermissionCheckResult, new() where TPermissionCheck : BasePermissionCheck <TResult>, new() { var item = new PermissionRegistryItem(); item.Set <TPermissionCheck, TResult>(permissionCheck); this.permissionRegistry.Add(typeof(T), item); }
internal PermissionRegistryItem GetPermission <T>() { var type = typeof(T); PermissionRegistryItem value = null; if (this.Check(type) && this.permissionRegistry.TryGetValue(type, out value)) { return(value); } return(null); }