public void Activate(IEnumerable <IPackageInfo> packages, IPackageLog log) { _templates.Each(t => { var context = new AttachRequest <T> { Template = t, Logger = TemplateLogger.Default() }; _attachers.Where(a => a.CanAttach(context)).Each(a => a.Attach(context)); }); }
public void Compose(ITemplateRegistry <T> templates) { templates.Each(t => { var bindRequest = new BindRequest <T> { Target = t, Parsing = _parsings.ParsingFor(t), Types = _types, TemplateRegistry = templates, Logger = TemplateLogger.Default() }; var binders = _binders.Where(x => x.CanBind(bindRequest)); var policies = _policies.Where(x => x.Matches(t)); binders.Each(binder => binder.Bind(bindRequest)); policies.Each(policy => policy.Apply(t)); }); }