public Template Build(TemplateSurrogate surrogate) { var componentBuilder = new DomainBuildingComponentSurrogateVisitor(); var amendmentBuilder = new DomainBuildingAmendmentSurrogateVisitor(); return(new Template( this.path, surrogate.Components.Select(c => c.Accept(componentBuilder)).ToArray(), surrogate.Amendments.Select(a => a.Accept(amendmentBuilder)).ToArray())); }
public WidgetSpecification Build(WidgetSpecificationSurrogate surrogate) { var componentBuilder = new DomainBuildingComponentSurrogateVisitor(); var amendmentBuilder = new DomainBuildingAmendmentSurrogateVisitor(); return(new WidgetSpecification( this.name, surrogate.PropertySpecifications.Select(this.BuildPropertySpecification).ToArray(), surrogate.Components.Select(c => c.Accept(componentBuilder)).ToArray(), (surrogate.Amendments ?? Enumerable.Empty <AmendmentSurrogate>()).Select(a => a.Accept(amendmentBuilder)).ToArray(), surrogate.Category)); }