private XElement _WriteOutputs(SmartOutputController controller) { return(new XElement(ELEMENT_OUTPUTS, controller.Outputs.Select((x, index) => new XElement(ELEMENT_OUTPUT, new XAttribute(ATTR_NAME, x.Name), new XAttribute(ATTR_ID, x.Id))))); }
public XElement WriteObject(IOutputDevice value) { SmartOutputController controller = (SmartOutputController)value; XElement element = new XElement(ELEMENT_SMART_CONTROLLER, new XAttribute(ATTR_NAME, controller.Name), new XAttribute(ATTR_HARDWARE_ID, controller.ModuleId), new XAttribute(ATTR_ID, controller.Id), _WriteOutputs(controller)); return(element); }
private void _ReadOutputs(SmartOutputController controller, XElement element) { XElement outputsElement = element.Element(ELEMENT_OUTPUTS); if (outputsElement != null) { int index = 0; foreach (XElement outputElement in outputsElement.Elements(ELEMENT_OUTPUT)) { Guid? id = XmlHelper.GetGuidAttribute(outputElement, ATTR_ID); string name = XmlHelper.GetAttribute(outputElement, ATTR_NAME) ?? "Unnamed output"; IntentOutputFactory outputFactory = new IntentOutputFactory(); IntentOutput output = (IntentOutput)outputFactory.CreateOutput(id.GetValueOrDefault(), name, index++); controller.AddOutput(output); } } }
public IOutputDevice ReadObject(XElement element) { try { string name = XmlHelper.GetAttribute(element, ATTR_NAME); if (name == null) { return(null); } Guid?moduleId = XmlHelper.GetGuidAttribute(element, ATTR_HARDWARE_ID); if (moduleId == null) { return(null); } Guid?moduleInstanceId = XmlHelper.GetGuidAttribute(element, ATTR_HARDWARE_INSTANCE_ID); if (moduleInstanceId == null) { return(null); } Guid?deviceId = XmlHelper.GetGuidAttribute(element, ATTR_ID); if (deviceId == null) { return(null); } SmartControllerFactory smartControllerFactory = new SmartControllerFactory(); SmartOutputController controller = (SmartOutputController) smartControllerFactory.CreateDevice(deviceId.Value, moduleId.Value, moduleInstanceId.Value, name); _ReadOutputs(controller, element); return(controller); } catch (Exception e) { logging.Error("Error loading Smart Controller from XML", e); return(null); } }