当前位置: 首页>>代码示例>>C#>>正文


C# Querying.ChainSearch类代码示例

本文整理汇总了C#中FubuMVC.Core.Registration.Querying.ChainSearch的典型用法代码示例。如果您正苦于以下问题:C# ChainSearch类的具体用法?C# ChainSearch怎么用?C# ChainSearch使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ChainSearch类属于FubuMVC.Core.Registration.Querying命名空间,在下文中一共展示了ChainSearch类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: find_by_null_category_with_multiple_chains_but_only_one_is_default

        public void find_by_null_category_with_multiple_chains_but_only_one_is_default()
        {
            var search = new ChainSearch
            {
                CategoryMode = CategorySearchMode.Relaxed,
                CategoryOrHttpMethod = null
            };

            var chain1 = new RoutedChain(""){
                UrlCategory ={
                    Category = null
                }
            };

            var chain2 = new RoutedChain("")
            {
                UrlCategory =
                {
                    Category = Categories.DEFAULT
                }
            };

            var chains = new BehaviorChain[] { chain1, chain2};

            search.FindForCategory(chains).Single().ShouldBeTheSameAs(chain2);
        }
开发者ID:DarthFubuMVC,项目名称:fubumvc,代码行数:26,代码来源:ChainSearchTester.cs

示例2: find

        private Func<BehaviorChain> find(ChainSearch search)
        {
            var candidates = search.FindCandidates(_behaviorGraph);

            var count = candidates.Count();
            switch (count)
            {
                case 1:
                    var chain = candidates.Single();
                    return () => chain;

                case 0:
                    return () =>
                    {
                        throw new FubuException(2104, "No behavior chains are registered matching criteria:  " + search);
                    };

                default:
                    var message = "More than one behavior chain matching criteria:  " + search;
                    message += "\nMatches:";

                    candidates.Each(x =>
                    {
                        message += "\n" + x;
                    });

                    return () =>
                    {
                        throw new FubuException(2108, message);
                    };
            }
        }
开发者ID:kingreatwill,项目名称:fubumvc,代码行数:32,代码来源:ChainResolutionCache.cs

示例3: find_by_category_when_the_category_is_null_and_relaxed_search_and_only_one_chain

        public void find_by_category_when_the_category_is_null_and_relaxed_search_and_only_one_chain()
        {
            var search = new ChainSearch{
                CategoryMode = CategorySearchMode.Relaxed,
                CategoryOrHttpMethod = null
            };

            var chains = new BehaviorChain[]{new BehaviorChain(),};

            search.FindForCategory(chains).Single().ShouldBeTheSameAs(chains.Single());
        }
开发者ID:DarthFubuMVC,项目名称:fubumvc,代码行数:11,代码来源:ChainSearchTester.cs

示例4: find_by_category_when_the_category_is_null_and_relaxed_search_and_only_one_chain_2

        public void find_by_category_when_the_category_is_null_and_relaxed_search_and_only_one_chain_2()
        {
            var search = new ChainSearch
            {
                CategoryMode = CategorySearchMode.Relaxed,
                CategoryOrHttpMethod = null
            };

            var chain1 = new RoutedChain("something");
            chain1.UrlCategory.Category = Categories.DEFAULT;

            var chains = new BehaviorChain[] { chain1, };

            search.FindForCategory(chains).Single().ShouldBeTheSameAs(chains.Single());
        }
开发者ID:DarthFubuMVC,项目名称:fubumvc,代码行数:15,代码来源:ChainSearchTester.cs

示例5: Find

        public BehaviorChain Find(Type handlerType, MethodInfo method, string category = null)
        {
            var search = new ChainSearch{
                Type = handlerType,
                TypeMode = TypeSearchMode.HandlerOnly,
                MethodName = method == null ? null : method.Name,
                CategoryOrHttpMethod = category
            };

            if (method == null)
            {
                search.TypeMode = TypeSearchMode.Any;
            }

            return Find(search);
        }
开发者ID:roend83,项目名称:fubumvc,代码行数:16,代码来源:ChainResolutionCache.cs

示例6: SetUp

        public void SetUp()
        {
            theServices = new InMemoryServiceLocator();
            theSearch = ChainSearch.ByUniqueInputType(typeof (object));
            theInput = new object();

            theResolver = MockRepository.GenerateStub<IChainResolver>();
            theUrlResolver = MockRepository.GenerateStub<IChainUrlResolver>();

            theChain = new BehaviorChain();

            theServices.Add(theResolver);
            theServices.Add(theUrlResolver);

            theRequest = new FormRequest(theSearch, theInput);
        }
开发者ID:joemcbride,项目名称:FubuMVC.Core.UI,代码行数:16,代码来源:FormRequestTester.cs

示例7: FindUnique

        public BehaviorChain FindUnique(object model, string category = null)
        {
            if (model == null)
            {
                throw new ArgumentNullException("model");
            }

            var modelType = model.GetType();

            var search = new ChainSearch
            {
                Type = modelType, TypeMode = TypeSearchMode.InputModelOnly, CategoryOrHttpMethod = category
            };

            return Find(search);
        }
开发者ID:kingreatwill,项目名称:fubumvc,代码行数:16,代码来源:ChainResolutionCache.cs

示例8: find_by_category_relaxed_with_only_one_chain

        public void find_by_category_relaxed_with_only_one_chain()
        {
            var search = new ChainSearch
            {
                CategoryMode = CategorySearchMode.Relaxed,
                CategoryOrHttpMethod = "something"
            };

            var chain3 = new RoutedChain("")
            {
                UrlCategory =
                {
                    Category = null
                }
            };

            var chains = new BehaviorChain[] { chain3 };

            search.FindForCategory(chains).ShouldHaveTheSameElementsAs(chain3);
        }
开发者ID:joemcbride,项目名称:fubumvc,代码行数:20,代码来源:ChainSearchTester.cs

示例9: find_by_category_strict_with_multiple_chains_1

        public void find_by_category_strict_with_multiple_chains_1()
        {
            var search = new ChainSearch
            {
                CategoryMode = CategorySearchMode.Strict,
                CategoryOrHttpMethod = "something"
            };

            var chain1 = new RoutedChain("")
            {
                UrlCategory =
                {
                    Category = "something"
                }
            };

            var chain2 = new RoutedChain("")
            {
                UrlCategory =
                {
                    Category = Categories.DEFAULT
                }
            };

            var chain3 = new RoutedChain("")
            {
                UrlCategory =
                {
                    Category = null
                }
            };

            var chains = new BehaviorChain[] { chain1, chain2, chain3 };

            search.FindForCategory(chains).ShouldHaveTheSameElementsAs(chain1);
        }
开发者ID:joemcbride,项目名称:fubumvc,代码行数:36,代码来源:ChainSearchTester.cs

示例10: find_by_null_category_with_multiple_chains_but_only_one_is_default_3

        public void find_by_null_category_with_multiple_chains_but_only_one_is_default_3()
        {
            var search = new ChainSearch
            {
                CategoryMode = CategorySearchMode.Relaxed,
                CategoryOrHttpMethod = null
            };

            var chain1 = new RoutedChain("")
            {
                UrlCategory =
                {
                    Category = "something"
                }
            };

            var chain2 = new RoutedChain("")
            {
                UrlCategory =
                {
                    Category = Categories.DEFAULT
                }
            };

            var chain3 = new RoutedChain("")
            {
                UrlCategory =
                {
                    Category = Categories.DEFAULT
                }
            };

            var chains = new BehaviorChain[] { chain1, chain2, chain3 };

            search.FindForCategory(chains).ShouldHaveTheSameElementsAs(chain2, chain3);
        }
开发者ID:joemcbride,项目名称:fubumvc,代码行数:36,代码来源:ChainSearchTester.cs

示例11: FormRequest

 public FormRequest(ChainSearch search, object input)
 {
     _search = search;
     _input = input;
 }
开发者ID:kharlamov,项目名称:FubuMVC.Core.UI,代码行数:5,代码来源:FormRequest.cs

示例12: find

        private Func<BehaviorChain> find(ChainSearch search)
        {
            var candidates = search.FindCandidates(_behaviorGraph);

            var count = candidates.Count();
            switch (count)
            {
                case 1:
                    var chain = candidates.Single();
                    return () => chain;

                case 0:
                    return () =>
                    {
                        throw new FubuException(2104, "No behavior chains are registered matching criteria:  " + search);
                    };

                default:
                    var message = "More than one behavior chain matching criteria:  " + search;
                    message += "\nMatches:";

                    candidates.Each(x =>
                    {
                        // TODO -- BehaviorChain needs a Description or a better ToString()

                        var description = "\n";
                        if (x.Route != null)
                        {
                            description += x.Route.Pattern + "  ";
                        }

                        if (x.FirstCall() != null)
                        {
                            description += " -- " + x.FirstCall().Description;
                        }

                        message += description;
                    });

                    return () =>
                    {
                        throw new FubuException(2108, message);
                    };
            }
        }
开发者ID:jemacom,项目名称:fubumvc,代码行数:45,代码来源:ChainResolutionCache.cs

示例13: find_by_method_if_it_exists_2

        public void find_by_method_if_it_exists_2()
        {
            var candidates = new ChainSearch
            {
                TypeMode = TypeSearchMode.Any,
                Type = typeof(SimpleInputModel),
                MethodName = "Query"
            }.FindCandidatesByType(theGraph).SelectMany(x => x);

            candidates.Select(x => x.FirstCall().Description)
                .ShouldHaveTheSameElementsAs("OneController.Query(SimpleInputModel model) : SimpleOutputModel");
        }
开发者ID:joemcbride,项目名称:fubumvc,代码行数:12,代码来源:ChainSearchTester.cs

示例14: find_by_input_model_only

        public void find_by_input_model_only()
        {
            var chainSearch = new ChainSearch
                              {
                                  TypeMode = TypeSearchMode.InputModelOnly,
                                  Type = typeof(SimpleInputModel)
                              };

            chainSearch.FindCandidatesByType(theGraph).Single().Select(x => x.FirstCall().Description)
            .ShouldHaveTheSameElementsAs("OneController.Query(SimpleInputModel model) : SimpleOutputModel", "TwoController.NotQuery(SimpleInputModel model) : SimpleOutputModel");
        }
开发者ID:joemcbride,项目名称:fubumvc,代码行数:11,代码来源:ChainSearchTester.cs

示例15: FormRequest

 public FormRequest(ChainSearch search, object input) : this(search, input, false) { }
开发者ID:DarthFubuMVC,项目名称:FubuMVC.Core.UI,代码行数:1,代码来源:FormRequest.cs


注:本文中的FubuMVC.Core.Registration.Querying.ChainSearch类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。