private static void SerialModuleItem(ParserItem.ListItem pi, string fileNameOut) { XmlSerializer xml = new XmlSerializer(typeof(ParserItem.ListItem)); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add(string.Empty, string.Empty); using (TextWriter writer = new StreamWriter(fileNameOut)) { xml.Serialize(writer, pi, ns); } }
private static ParserItem.ListItem DeserialModuleItem(string file) { XmlSerializer de = new XmlSerializer(typeof(ParserItem.ListItem)); TextReader reader = new StreamReader(file); object obj = de.Deserialize(reader); ParserItem.ListItem config = (ParserItem.ListItem)obj; reader.Close(); return(config); }
private static void ProcessItem(PinsFile fileIn, PinsFile fileOut) { ParserItem.ListItem pi = DeserialModuleItem(fileIn.Item); ParserItem.ListItemTGrupItem tGrupItem = new ParserItem.ListItemTGrupItem(); tGrupItem = pi.TGrupItem; // Add a new field ParserItem.ListItemTGrupItemGrupItemTGrupItemEditorDataElectrical_property itemElectricalPro = new ParserItem.ListItemTGrupItemGrupItemTGrupItemEditorDataElectrical_property() { name = "Initial Value", brief_name = "Initial Value", symbol_suffix = "_InitValue" }; List <ParserItem.ListItemTGrupItemGrupItem> lstGrupItemLevel2 = new List <ParserItem.ListItemTGrupItemGrupItem>(); foreach (var item in tGrupItem.Children) { if (item.TGrupItem.Name.Equals("Electrical properties")) { // Add electrical property List <ParserItem.ListItemTGrupItemGrupItemTGrupItemEditorDataElectrical_property> lstElect = new List <ParserItem.ListItemTGrupItemGrupItemTGrupItemEditorDataElectrical_property>(); bool haveInitValueItemProp = false; foreach (var item2 in item.TGrupItem.EditorData.electrical_properties_declarations) { lstElect.Add(item2); if (item2.symbol_suffix.Contains("InitValue")) { haveInitValueItemProp = true; } } if (!haveInitValueItemProp) { lstElect.Add(itemElectricalPro); } item.TGrupItem.EditorData.electrical_properties_declarations = lstElect.ToArray(); List <ParserItem.ListItemTGrupItemGrupItemTGrupItemGrupItem> lstChildren = new List <ParserItem.ListItemTGrupItemGrupItemTGrupItemGrupItem>(); // Add Initival value for each pin foreach (var item2 in item.TGrupItem.Children) { List <ParserItem.ListItemTGrupItemGrupItemTGrupItemGrupItemTGrupItemGrupItem> lstInitPins = new List <ParserItem.ListItemTGrupItemGrupItemTGrupItemGrupItemTGrupItemGrupItem>(); bool haveInitValueItem = false; foreach (var item3 in item2.TGrupItem.Children) { lstInitPins.Add(item3); if (item2.TGrupItem.Symbol.Contains("PT")) { if ((item3.TPinFuncPropItem != null) && (item3.TPinFuncPropItem.Symbol.Contains("InitValue"))) { haveInitValueItem = true; } } } if (!haveInitValueItem) { if (item2.TGrupItem.Symbol.Contains("PT")) { // Add pin func prop item ParserItem.ListItemTGrupItemGrupItemTGrupItemGrupItemTGrupItemGrupItemTPinFuncPropItem tPinFuncPropItem = new ParserItem.ListItemTGrupItemGrupItemTGrupItemGrupItemTGrupItemGrupItemTPinFuncPropItem() { Name = "Initial Value Field", Hint = "Initial value control", ItemLevel = "BASIC", EditLine = true, DefaultValue = "<Automatic>", CanDelete = true, IconPopup = true, SortStyle = "alpha used eicons", PinFunctionalPropertyId = "InitValue", ForcePinName = String.Format("{0}", item2.TGrupItem.Symbol), Symbol = String.Format("{0}_InitValue", item2.TGrupItem.Symbol) }; ParserItem.ListItemTGrupItemGrupItemTGrupItemGrupItemTGrupItemGrupItem pinInit = new ParserItem.ListItemTGrupItemGrupItemTGrupItemGrupItemTGrupItemGrupItem() { TPinFuncPropItem = tPinFuncPropItem }; lstInitPins.Add(pinInit); } } item2.TGrupItem.Children = lstInitPins.ToArray(); lstChildren.Add(item2); } item.TGrupItem.Children = lstChildren.ToArray(); } lstGrupItemLevel2.Add(item); } tGrupItem.Children = lstGrupItemLevel2.ToArray(); pi.TGrupItem = tGrupItem; SerialModuleItem(pi, fileOut.Item); }