public new void Configure(ConfigurationElement configuration) { //Store the .config configuration section for us to maybe created modified version later (if requested on the model). //Note, we had to implement IConfigurable as well (despite it being implemented on our base class) or this would not be called. _realConfiguration = configuration as OrderPipelinesProcessorConfiguration; base.Configure(configuration); }
public OrderPipelinesProcessorConfiguration Create(OrderPipelinesProcessorConfiguration configuration) { if (configuration == null) throw new ArgumentNullException("configuration"); if(Pipelines == null) throw new InvalidOperationException("Pipelines is null."); if(Pipelines.Count == 0) throw new InvalidOperationException("Pipelines is an empty list. You must specify at least one Pipeline to run."); var config = new XElement("OrderPipelines", Pipelines.Select(x => { var xElement = new XElement("Pipeline"); xElement.SetAttributeValue(XName.Get("name"), x.Name); xElement.SetAttributeValue(XName.Get("type"), x.Type); return (object) xElement; }).ToArray()); return new RuntimeOrderPipelinesProcessorConfiguration(config); }
public OrderPipelinesProcessorConfiguration Create(OrderPipelinesProcessorConfiguration configuration) { if (configuration == null) throw new ArgumentNullException("configuration"); var config = new XElement("OrderPipelines", configuration.OrderPipelines.Cast<PipelineConfigurationElement>() .Select(pe => { var xElement = new XElement("Pipeline"); var name = pe.PipelineName; if (name.EndsWith(Suffix, StringComparison.InvariantCultureIgnoreCase)) { name = name.Substring(0, name.Length - Suffix.Length); } xElement.SetAttributeValue(XName.Get("name"), name); xElement.SetAttributeValue(XName.Get("type"), pe.PipelineType); return (object) xElement; }).ToArray() ); return new RuntimeOrderPipelinesProcessorConfiguration(config); }