public void Apply(TypeConfig config) { config.AssertNotNull(); var from = _log.GetOrDefault(config, -1) + 1; from.UpTo(_clauses.Count() - 1).ForEach(i => { Clauses[i](config); _log[config] = i; }); }
public static TypeConfig Adhoc(this Type t) { if (t == null) return new TypeConfig(t); return Repository.Configs.GetOrCreate(t, () => { var config = new TypeConfig(t); var rules = Repository.Rules.OfType<TypeRule>().Where(rule => rule.AppliesTo(t)).ToReadOnly(); rules.ForEach(rule => rule.Apply(config)); return config; }).AssertCast<TypeConfig>(); }
public static TypeConfig Adhoc(this Type t) { if (t == null) { return(new TypeConfig(t)); } return(Repository.Configs.GetOrCreate(t, () => { var config = new TypeConfig(t); var rules = Repository.Rules.OfType <TypeRule>().Where(rule => rule.AppliesTo(t)).ToReadOnly(); rules.ForEach(rule => rule.Apply(config)); return config; }).AssertCast <TypeConfig>()); }