Esempio n. 1
0
        public void positive_test()
        {
            var rule = NamespaceRule.For <Red.Message1>();

            rule.Matches(typeof(Red.Message1)).ShouldBeTrue();
            rule.Matches(typeof(Red.Message2)).ShouldBeTrue();
            rule.Matches(typeof(Red.Message3)).ShouldBeTrue();
        }
Esempio n. 2
0
 private static Func <Type, bool> GetNamespacePredicate(string @namespace, NamespaceRule namespaceRule)
 {
     return(namespaceRule switch
     {
         NamespaceRule.StartsWith => (t) => t.Namespace !.StartsWith(@namespace),
         NamespaceRule.Equals => (t) => t.Namespace == @namespace,
         _ => throw new ArgumentOutOfRangeException(nameof(namespaceRule)),
     });
Esempio n. 3
0
        public void negative_test()
        {
            var rule = NamespaceRule.For <Red.Message1>();

            rule.Matches(typeof(Green.Message1)).ShouldBeFalse();
            rule.Matches(typeof(Green.Message2)).ShouldBeFalse();
            rule.Matches(typeof(Green.Message3)).ShouldBeFalse();
        }
Esempio n. 4
0
    public ShellAppBuilder <TAppBuilder> RegisterAllAppModels(NamespaceRule namespaceRule = NamespaceRule.StartsWith)
    {
        var appType = this.appBuilder.ApplicationType;

        containerBuilder.RegisterAllModels(appType.Assembly, appType.Namespace !, namespaceRule);

        return(this);
    }
Esempio n. 5
0
        public void add_namespace_publishing_rule_2()
        {
            theRegistry.Channel(x => x.Outbound).AcceptsMessagesInNamespace(typeof(BusSettings).Namespace);

            channelFor(x => x.Outbound).Rules.Single()
            .ShouldBe(NamespaceRule.For <BusSettings>());

            channelFor(x => x.Upstream).Rules.Any().ShouldBeFalse();
        }
Esempio n. 6
0
        public void add_namespace_publishing_rule()
        {
            theRegistry.Channel(x => x.Outbound).AcceptsMessagesInNamespaceContainingType <BusSettings>();

            channelFor(x => x.Outbound).Rules.Single()
            .ShouldEqual(NamespaceRule.For <BusSettings>());

            channelFor(x => x.Upstream).Rules.Any().ShouldBeFalse();
        }
Esempio n. 7
0
    public static ContainerBuilder RegisterMenus <TModule>(this ContainerBuilder builder, NamespaceRule namespaceRule = NamespaceRule.StartsWith)
        where TModule : IModule
    {
        if (builder is null)
        {
            throw new ArgumentNullException(nameof(builder));
        }

        var moduleType = typeof(TModule);

        return(builder.RegisterMenus(moduleType.Assembly, moduleType.Namespace !, namespaceRule));
    }
Esempio n. 8
0
    public static ContainerBuilder RegisterViewModels(this ContainerBuilder builder, Assembly assembly, string @namespace, NamespaceRule namespaceRule = NamespaceRule.StartsWith)
    {
        if (builder is null)
        {
            throw new ArgumentNullException(nameof(builder));
        }

        if (@namespace is null)
        {
            throw new ArgumentNullException(nameof(@namespace));
        }

        var namespacePredicate = GetNamespacePredicate(@namespace !, namespaceRule);

        builder.RegisterAssemblyTypes(assembly)
        .AssignableTo <ViewModel>()
        .Where(t => namespacePredicate(t))
        .AsSelf()
        .InstancePerDependency();
        return(builder);
    }
Esempio n. 9
0
    public static ContainerBuilder RegisterAllModels(this ContainerBuilder builder, Assembly assembly, string @namespace, NamespaceRule namespaceRule = NamespaceRule.StartsWith)
    {
        if (builder is null)
        {
            throw new ArgumentNullException(nameof(builder));
        }

        if (@namespace is null)
        {
            throw new ArgumentNullException(nameof(@namespace));
        }

        builder.RegisterViewModels(assembly, @namespace, namespaceRule);
        builder.RegisterDocuments(assembly, @namespace, namespaceRule);
        builder.RegisterTools(assembly, @namespace, namespaceRule);
        builder.RegisterMenus(assembly, @namespace, namespaceRule);
        builder.RegisterToolBars(assembly, @namespace, namespaceRule);
        builder.RegisterCommands(assembly, @namespace, namespaceRule);

        return(builder);
    }
Esempio n. 10
0
    public static ContainerBuilder RegisterTools(this ContainerBuilder builder, Assembly assembly, string @namespace, NamespaceRule namespaceRule = NamespaceRule.StartsWith)
    {
        if (builder is null)
        {
            throw new ArgumentNullException(nameof(builder));
        }

        if (@namespace is null)
        {
            throw new ArgumentNullException(nameof(@namespace));
        }

        var namespacePredicate = GetNamespacePredicate(@namespace !, namespaceRule);

        builder.RegisterAssemblyTypes(assembly)
        .AssignableTo <ITool>()
        .Where(t => namespacePredicate(t))
        .AsSelf()
        .AsImplementedInterfaces()
        .SingleInstance();

        return(builder);
    }
Esempio n. 11
0
    public static ContainerBuilder RegisterToolBars(this ContainerBuilder builder, Assembly assembly, string @namespace, NamespaceRule namespaceRule = NamespaceRule.StartsWith)
    {
        if (builder is null)
        {
            throw new ArgumentNullException(nameof(builder));
        }

        if (@namespace is null)
        {
            throw new ArgumentNullException(nameof(@namespace));
        }

        var namespacePredicate = GetNamespacePredicate(@namespace !, namespaceRule);

        builder.RegisterAssemblyTypes(assembly)
        .AssignableTo <ToolBarTrayViewModel>()
        .Where(t => namespacePredicate(t))
        .OnActivating(e =>
        {
            if (e.Instance is ToolBarTrayViewModel m)
            {
                e.Context.Resolve <IToolBarManager>().Register(m.Definition);
            }
        })
        .AsSelf()
        .InstancePerDependency();
        return(builder);
    }
Esempio n. 12
0
 public ChannelExpression AcceptsMessagesInNamespaceContainingType <TMessageType>()
 {
     alter = node => node.Rules.Add(NamespaceRule.For <TMessageType>());
     return(this);
 }