public TemplateSurrogate Build(Template template) { var componentBuilder = new SurrogateBuildingComponentVisitor(); var amendmentBuilder = new SurrogateBuildingAmendmentVisitor(); return(new TemplateSurrogate { Components = template.Components.Select(c => c.Accept(componentBuilder)).ToArray(), Amendments = template.Amendments.Select(a => a.Accept(amendmentBuilder)).ToArray() }); }
public WidgetSpecificationSurrogate Build(WidgetSpecification widgetSpecification) { var componentBuilder = new SurrogateBuildingComponentVisitor(); var amendmentBuilder = new SurrogateBuildingAmendmentVisitor(); return(new WidgetSpecificationSurrogate { Category = widgetSpecification.Category, Components = widgetSpecification.Components.Select(c => c.Accept(componentBuilder)).ToArray(), Amendments = widgetSpecification.Amendments.Select(a => a.Accept(amendmentBuilder)).ToArray(), PropertySpecifications = widgetSpecification.Properties.Select(s => new PropertySpecificationSurrogate { Name = s.Name, Type = s.Type, DefaultValue = s.DefaultValue }).ToArray() }); }