public IDictionary <string, IEnumerable <Permission> > Resolve(IUserGroup source) { return(_actions .Where(x => x.CanBePermissionAssigned) .Select(x => GetPermission(x, source)) .GroupBy(x => x.Category) .ToDictionary(x => x.Key, x => (IEnumerable <Permission>)x.ToArray())); }
private IDictionary <string, IEnumerable <Permission> > MapUserGroupDefaultPermissions(IUserGroup source) { Permission GetPermission(IAction action) => new Permission { Category = action.Category.IsNullOrWhiteSpace() ? _textService.Localize($"actionCategories/{Constants.Conventions.PermissionCategories.OtherCategory}") : _textService.Localize($"actionCategories/{action.Category}"), Name = _textService.Localize($"actions/{action.Alias}"), Description = _textService.Localize($"actionDescriptions/{action.Alias}"), Icon = action.Icon, Checked = source.Permissions != null && source.Permissions.Contains(action.Letter.ToString(CultureInfo.InvariantCulture)), PermissionCode = action.Letter.ToString(CultureInfo.InvariantCulture) }; return(_actions .Where(x => x.CanBePermissionAssigned) .Select(GetPermission) .GroupBy(x => x.Category) .ToDictionary(x => x.Key, x => (IEnumerable <Permission>)x.ToArray())); }