コード例 #1
0
        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));
        }
コード例 #2
0
 public PermissionController(
     ILogger <PermissionController> logger,
     UnitOfWork unitOfWork,
     ICurrentUser currentUser)
     : base(unitOfWork, logger)
 {
     _logger         = logger;
     _permissionRepo = new AppPermissionRepository(unitOfWork);
     _currentUser    = currentUser;
 }