private Result <List <AppPermission> > GetMatchingPermissions( IAppPermissionRepository permissionRepo, string[] permissionNames ) { if (permissionRepo == null) { return(Result.Fail <List <AppPermission> >("Permission repo is not specified")); } if (permissionNames == null) { return(Result.Fail <List <AppPermission> >("No permissions are specified")); } permissionNames = permissionNames.Select(d => d.Trim().ToUpper()).Distinct().ToArray(); List <AppPermission> permissions = permissionRepo.GetList().ToList(); List <AppPermission> result = new List <AppPermission>(); foreach (var name in permissionNames) { Maybe <AppPermission> permission = permissions.FirstOrDefault(d => d.Name.ToUpper() == name); if (permission.HasNoValue) { return(Result.Fail <List <AppPermission> >($"No matching permission found: {name}")); } result.Add(permission.Value); } return(Result.Ok(result)); }
public PermissionController( ILogger <PermissionController> logger, UnitOfWork unitOfWork, ICurrentUser currentUser) : base(unitOfWork, logger) { _logger = logger; _permissionRepo = new AppPermissionRepository(unitOfWork); _currentUser = currentUser; }