示例#1
0
    public static IDisposable Use(RequirePermissionsSimpleBatchStateChecker <TState> checker)
    {
        var previousValue = Current;

        _current.Value = checker;
        return(new DisposeAction(() => _current.Value = previousValue));
    }
    public void Switch_Current_Checker_Test()
    {
        var checker = RequirePermissionsSimpleBatchStateChecker <MyStateEntity2> .Current;

        checker.ShouldNotBeNull();

        RequirePermissionsSimpleBatchStateChecker <MyStateEntity2> checker2 = null;

        using (RequirePermissionsSimpleBatchStateChecker <MyStateEntity2> .Use(new RequirePermissionsSimpleBatchStateChecker <MyStateEntity2>()))
        {
            checker2 = RequirePermissionsSimpleBatchStateChecker <MyStateEntity2> .Current;
            checker2.ShouldNotBeNull();
            checker2.ShouldNotBe(checker);
        }

        checker2.ShouldNotBeNull();
        checker2.ShouldNotBe(checker);
    }
示例#3
0
    public async Task <Toolbar> GetAsync(string name)
    {
        var toolbar = new Toolbar(name);

        using (var scope = ServiceProvider.CreateScope())
        {
            using (RequirePermissionsSimpleBatchStateChecker <ToolbarItem> .Use(new RequirePermissionsSimpleBatchStateChecker <ToolbarItem>()))
            {
                var context = new ToolbarConfigurationContext(ThemeManager.CurrentTheme, toolbar, scope.ServiceProvider);

                foreach (var contributor in Options.Contributors)
                {
                    await contributor.ConfigureToolbarAsync(context);
                }

                await CheckPermissionsAsync(scope.ServiceProvider, toolbar);
            }
        }

        return(toolbar);
    }
示例#4
0
        protected virtual async Task <ApplicationMenu> GetInternalAsync(string name)
        {
            var menu = new ApplicationMenu(name);

            using (var scope = ServiceScopeFactory.CreateScope())
            {
                using (RequirePermissionsSimpleBatchStateChecker <ApplicationMenuItem> .Use(new RequirePermissionsSimpleBatchStateChecker <ApplicationMenuItem>()))
                {
                    var context = new MenuConfigurationContext(menu, scope.ServiceProvider);

                    foreach (var contributor in Options.MenuContributors)
                    {
                        await contributor.ConfigureMenuAsync(context);
                    }

                    await CheckPermissionsAsync(scope.ServiceProvider, menu);
                }
            }

            NormalizeMenu(menu);

            return(menu);
        }