public void Add(TreeRouteLinkGenerationEntry entry) { _generatingEntries.Add(entry); }
private static TreeRouter CreateAttributeRoute(IRouter next, TreeRouteLinkGenerationEntry entry) { return CreateAttributeRoute(next, new[] { entry }); }
private static TreeRouter CreateAttributeRoute(TreeRouteLinkGenerationEntry entry) { return CreateAttributeRoute(new StubRouter(), entry); }
private static TreeRouteLinkGenerationEntry CreateGenerationEntry( string template, object requiredValues, int order = 0, string name = null) { var constraintResolver = CreateConstraintResolver(); var entry = new TreeRouteLinkGenerationEntry(); entry.Template = TemplateParser.Parse(template); var defaults = new RouteValueDictionary(); foreach (var parameter in entry.Template.Parameters) { if (parameter.DefaultValue != null) { defaults.Add(parameter.Name, parameter.DefaultValue); } } var constraintBuilder = new RouteConstraintBuilder(CreateConstraintResolver(), template); foreach (var parameter in entry.Template.Parameters) { if (parameter.InlineConstraints != null) { if (parameter.IsOptional) { constraintBuilder.SetOptional(parameter.Name); } foreach (var constraint in parameter.InlineConstraints) { constraintBuilder.AddResolvedConstraint(parameter.Name, constraint.Constraint); } } } var constraints = constraintBuilder.Build(); entry.Constraints = constraints; entry.Defaults = defaults; entry.Binder = new TemplateBinder(Encoder, Pool, entry.Template, defaults); entry.Order = order; entry.GenerationPrecedence = RoutePrecedence.ComputeGenerated(entry.Template); entry.RequiredLinkValues = new RouteValueDictionary(requiredValues); entry.RouteGroup = CreateRouteGroup(order, template); entry.Name = name; return entry; }
private TreeRouteLinkGenerationEntry CreateEntry(object requiredValues) { var entry = new TreeRouteLinkGenerationEntry(); entry.RequiredLinkValues = new RouteValueDictionary(requiredValues); return entry; }
public LinkGenerationMatch(TreeRouteLinkGenerationEntry entry, bool isFallbackMatch) { _entry = entry; _isFallbackMatch = isFallbackMatch; }