本文整理汇总了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);
}
示例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);
};
}
}
示例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());
}
示例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());
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例11: FormRequest
public FormRequest(ChainSearch search, object input)
{
_search = search;
_input = input;
}
示例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);
};
}
}
示例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");
}
示例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");
}
示例15: FormRequest
public FormRequest(ChainSearch search, object input) : this(search, input, false) { }