示例#1
0
        public void TestRights(RightDefaultMode mode, Type expectedType)
        {
            var services = new ServiceCollection();

            new RddBuilder(services).WithDefaultRights(mode);
            var provider = services.BuildServiceProvider();

            Assert.IsType(expectedType, provider.GetRequiredService <IRightExpressionsHelper <Hierarchy> >());
        }
        public static RddBuilder WithDefaultRights(this RddBuilder rddBuilder, RightDefaultMode mode)
        {
            switch (mode)
            {
            case RightDefaultMode.Closed:
                rddBuilder.Services.AddSingleton(typeof(IRightExpressionsHelper <>), typeof(ClosedRightExpressionsHelper <>));
                break;

            case RightDefaultMode.Open:
                rddBuilder.Services.AddSingleton(typeof(IRightExpressionsHelper <>), typeof(OpenRightExpressionsHelper <>));
                break;

            default:
                throw new ArgumentException("Invalid right mode", nameof(mode));
            }
            return(rddBuilder);
        }