private TagPlan <T> buildPlan(TagSubject <T> subject) { var sets = setsFor(subject.Profile); var builder = sets.SelectMany(x => x.Builders).FirstOrDefault(x => x.Matches(subject.Subject)); if (builder == null) { throw new ArgumentOutOfRangeException("Unable to select a TagBuilder for subject " + subject); } var modifiers = sets.SelectMany(x => x.Modifiers).Where(x => x.Matches(subject.Subject)); return(new TagPlan <T>(builder, modifiers)); }
private TagPlan BuildPlan(TagSubject subject) { var sets = SetsFor(subject.Profile).ToList(); var policy = sets.SelectMany(x => x.Policies).FirstOrDefault(x => x.Matches(subject.Subject)); if (policy == null) { throw new ArgumentOutOfRangeException("Unable to select a TagBuilderPolicy for subject " + subject); } var builder = policy.BuilderFor(subject.Subject); var modifiers = sets.SelectMany(x => x.Modifiers).Where(x => x.Matches(subject.Subject)); var elementNamingConvention = sets.Select(x => x.ElementNamingConvention).FirstOrDefault(); return new TagPlan(builder, modifiers, elementNamingConvention); }
private TagPlan BuildPlan(TagSubject subject) { var sets = SetsFor(subject.Profile).ToList(); var policy = sets.SelectMany(x => x.Policies).FirstOrDefault(x => x.Matches(subject.Subject)); if (policy == null) { throw new ArgumentOutOfRangeException("Unable to select a TagBuilderPolicy for subject " + subject); } var builder = policy.BuilderFor(subject.Subject); var modifiers = sets.SelectMany(x => x.Modifiers).Where(x => x.Matches(subject.Subject)); var elementNamingConvention = sets.Select(x => x.ElementNamingConvention).FirstOrDefault(); return(new TagPlan(builder, modifiers, elementNamingConvention)); }
public TagPlan PlanFor(ElementRequest request, string profile = null) { var subject = new TagSubject(profile, request); return(BuildPlan(subject)); }
public TagPlan PlanFor(ElementRequest request, string profile = null) { var subject = new TagSubject(profile, request); return _plans[subject]; }
public TagPlan PlanFor(ElementRequest request, string profile = null) { var subject = new TagSubject(profile, request); return(_plans[subject]); }
public TagPlan <T> PlanFor(T request, string profile = null) { var subject = new TagSubject <T>(profile, request); return(_plans[subject]); }