private void _PopulateController(OutputController controller, XElement element) { controller.ModuleDataSet = _GetModuleData(element); int outputIndex = 0; foreach (XElement outputElement in element.Element(ELEMENT_OUTPUTS).Elements(ELEMENT_OUTPUT)) { // Data persisted in the controller instance may exceed the // output count. if (outputIndex >= controller.OutputCount) { break; } // The outputs were created when the output count was set. OutputController.Output output = controller.Outputs[outputIndex]; output.Name = outputElement.Attribute(ATTR_NAME).Value; controller.ClearPostFilters(outputIndex); IEnumerable <XElement> filterElements = outputElement.Element(ELEMENT_FILTERS).Elements(ELEMENT_FILTER); foreach (XElement filterElement in filterElements) { Guid typeId = Guid.Parse(filterElement.Attribute(ATTR_TYPE_ID).Value); Guid instanceId = Guid.Parse(filterElement.Attribute(ATTR_INSTANCE_ID).Value); IPostFilterModuleInstance filter = Modules.ModuleManagement.GetPostFilter(typeId); filter.InstanceId = instanceId; controller.AddPostFilter(outputIndex, filter); } outputIndex++; } }
protected override void _PopulateObject(OutputController obj, XElement element) { obj.LinkedTo = Guid.Parse(element.Attribute(ATTR_LINKED_TO).Value); if (obj.OutputModule != null) { obj.OutputModule.TransformModuleData = _GetTransformModuleData(element.Element(ELEMENT_TRANSFORM_DATA)); } int outputIndex = 0; foreach (XElement outputElement in element.Element(ELEMENT_OUTPUTS).Elements(ELEMENT_OUTPUT)) { // Data persisted in the controller instance may exceed the // output count. if (outputIndex >= obj.OutputCount) { break; } // The outputs were created when the output count was set. OutputController.Output output = obj.Outputs[outputIndex]; output.Name = outputElement.Attribute(ATTR_NAME).Value; if (obj.OutputModule != null) { // Create transform instances. foreach (XElement transformElement in outputElement.Element(ELEMENT_TRANSFORMS).Elements(ELEMENT_TRANSFORM)) { Guid moduleTypeId = Guid.Parse(transformElement.Attribute(ATTR_TYPE_ID).Value); Guid moduleInstanceId = Guid.Parse(transformElement.Attribute(ATTR_INSTANCE_ID).Value); obj.OutputModule.AddTransform(outputIndex, moduleTypeId, moduleInstanceId); } } outputIndex++; } }