コード例 #1
0
ファイル: ViewTypePool.cs プロジェクト: zzekikaya/fubumvc
        public Type FindTypeByName(string typeFullName, Action <string> log)
        {
            if (GenericParser.IsGeneric(typeFullName))
            {
                var genericParser = new GenericParser(_graph.AllAssemblies());
                return(genericParser.Parse(typeFullName));
            }

            return(findClosedTypeByFullName(typeFullName, log));
        }
コード例 #2
0
        public static Task <ConnegGraph> Build(BehaviorGraph behaviorGraph)
        {
            var graph = new ConnegGraph();

            var writers = TypeRepository.FindTypes(behaviorGraph.AllAssemblies(),
                                                   TypeClassification.Concretes | TypeClassification.Closed, x => x.Closes(typeof(IMediaWriter <>)))
                          .ContinueWith(t => graph.Writers.AddRange(t.Result));

            var readers = TypeRepository.FindTypes(behaviorGraph.AllAssemblies(),
                                                   TypeClassification.Concretes | TypeClassification.Closed, x => x.Closes(typeof(IReader <>)))
                          .ContinueWith(t => graph.Readers.AddRange(t.Result));

            return(Task.WhenAll(writers, readers).ContinueWith(t => graph));
        }
コード例 #3
0
ファイル: ConnegGraph.cs プロジェクト: cothienlac86/fubumvc
        public static Task<ConnegGraph> Build(BehaviorGraph behaviorGraph)
        {
            var graph = new ConnegGraph();

            var writers = TypeRepository.FindTypes(behaviorGraph.AllAssemblies(),
                TypeClassification.Concretes | TypeClassification.Closed, x => x.Closes(typeof (IMediaWriter<>)))
                .ContinueWith(t => graph.Writers.AddRange(t.Result));

            var readers = TypeRepository.FindTypes(behaviorGraph.AllAssemblies(),
                TypeClassification.Concretes | TypeClassification.Closed, x => x.Closes(typeof(IReader<>)))
                .ContinueWith(t => graph.Readers.AddRange(t.Result));

            return Task.WhenAll(writers, readers).ContinueWith(t => graph);
        }
コード例 #4
0
        public Task <BehaviorChain[]> BuildChains(BehaviorGraph graph, IPerfTimer timer)
        {
            var types = TypeRepository.FindTypes(graph.AllAssemblies(), TypeClassification.Concretes,
                                                 type => type.CanBeCastTo <Topic>());

            return
                (types.ContinueWith(
                     t => { return t.Result.Select(x => new SseTopicChain(x).As <BehaviorChain>()).ToArray(); }));
        }
コード例 #5
0
        public Task<BehaviorChain[]> BuildChains(BehaviorGraph graph, IPerfTimer timer)
        {
            var types = TypeRepository.FindTypes(graph.AllAssemblies(), TypeClassification.Concretes,
                type => type.CanBeCastTo<Topic>());

            return
                types.ContinueWith(
                    t => { return t.Result.Select(x => new SseTopicChain(x).As<BehaviorChain>()).ToArray(); });
        }
コード例 #6
0
 public static Task Compile(BehaviorGraph graph, IPerfTimer timer, FubuRegistry registry)
 {
     return(TypeRepository.FindTypes(graph.AllAssemblies(),
                                     TypeClassification.Concretes | TypeClassification.Closed, IsValidationRegistration)
            .ContinueWith(t =>
     {
         t.Result.Distinct()
         .Each(type => registry.Services.For(typeof(IValidationRegistration)).Add(type));
     }));
 }
コード例 #7
0
 public static Task Compile(BehaviorGraph graph, IPerfTimer timer, FubuRegistry registry)
 {
     return TypeRepository.FindTypes(graph.AllAssemblies(),
         TypeClassification.Concretes | TypeClassification.Closed, IsValidationRegistration)
         .ContinueWith(t =>
         {
                 t.Result.Distinct()
                 .Each(type => registry.Services.For(typeof(IValidationRegistration)).Add(type));
         });
 }
コード例 #8
0
        public static Task Compile(BehaviorGraph graph, IPerfTimer timer)
        {
            return TypeRepository.FindTypes(graph.AllAssemblies(),
                TypeClassification.Concretes | TypeClassification.Closed, IsAccessorRule)
                .ContinueWith(t =>
                {
                    var rules = new AccessorRules();
                    t.Result.Distinct()                        
                        .Select(x => Activator.CreateInstance(x).As<IAccessorRulesRegistration>())
                        .Each(x => x.AddRules(rules));

                    graph.Settings.Replace(rules);
                });


        }