public void DeleteLine(int b) { int templine, linecount; XmlDocument XmlStation = new XmlDocument(); XmlStation.Load(StationXml); XmlNode StationRoot = XmlStation.SelectSingleNode("All_Stations"); XmlNodeList StationList = StationRoot.ChildNodes; XmlDocument XmlLine = new XmlDocument(); XmlLine.Load(LineXml); XmlNode LineRoot = XmlLine.SelectSingleNode("All_Lines"); XmlNodeList LineList = LineRoot.ChildNodes; foreach (int station in LinesArray[b].Stations) { if (StationsArray[station] == null) { ChangeStationCount--; continue; } linecount = StationsArray[station].Lines.Count; if (linecount == 1) { foreach (XmlNode stationnode in StationList) { XmlElement stationele = (XmlElement)stationnode; if (stationele.GetAttribute("Station_ID") == station.ToString()) { StationRoot.RemoveChild(stationnode); break; } } StationCount--; StationsArray[station] = null; FreeStationNum.Add(station); } else if (linecount == 2) { while (StationsArray[station].Lines.Contains(b)) { StationsArray[station].Lines.Remove(b); } ChangeStationCount--; foreach (XmlNode stationnode in StationList) { XmlElement stationele = (XmlElement)stationnode; if (stationele.GetAttribute("Station_ID") == station.ToString()) { XmlNodeList nodelist = stationele.ChildNodes; foreach (XmlNode nodenode in nodelist) { XmlElement nodeele = (XmlElement)nodenode; if (nodeele.Name == "Station_Lines") { nodeele.InnerText = StationsArray[station].LinesToString(); break; } } break; } } templine = StationsArray[station].Lines[0]; while (LinesArray[templine].ChangeStations.Contains(station)) { LinesArray[templine].ChangeStations.Remove(station); } foreach (XmlNode linenode in LineList) { XmlElement lineele = (XmlElement)linenode; if (lineele.GetAttribute("Line_ID") == templine.ToString()) { XmlNodeList nodelist = lineele.ChildNodes; foreach (XmlNode nodenode in nodelist) { XmlElement nodeele = (XmlElement)nodenode; if (nodeele.Name == "Line_ChangeStations") { nodeele.InnerText = LinesArray[templine].ChangeStationsToString(); break; } } break; } } } else { while (StationsArray[station].Lines.Contains(b)) { StationsArray[station].Lines.Remove(b); } foreach (XmlNode stationnode in StationList) { XmlElement stationele = (XmlElement)stationnode; if (stationele.GetAttribute("Station_ID") == station.ToString()) { XmlNodeList nodelist = stationele.ChildNodes; foreach (XmlNode nodenode in nodelist) { XmlElement nodeele = (XmlElement)nodenode; if (nodeele.Name == "Station_Lines") { nodeele.InnerText = StationsArray[station].LinesToString(); break; } } break; } } } } XmlStation.Save(StationXml); foreach (XmlNode linenode in LineList) { XmlElement lineele = (XmlElement)linenode; if (lineele.GetAttribute("Line_ID") == b.ToString()) { LineRoot.RemoveChild(linenode); break; } } XmlLine.Save(LineXml); LinesArray[b] = null; LineCount--; FreeLineNum.Add(b); FreeLineNum.Sort(); }
public void DeleteStation(int a) { int templine, i, linecount; XmlDocument XmlLine = new XmlDocument(); XmlLine.Load(LineXml); XmlNode LineRoot = XmlLine.SelectSingleNode("All_Lines"); XmlNodeList LineList = LineRoot.ChildNodes; linecount = StationsArray[a].Lines.Count; if (linecount == 1) { templine = StationsArray[a].Lines[0]; if (a == LinesArray[templine].Extral) { while (LinesArray[templine].ChangeStations.Contains(a)) { LinesArray[templine].ChangeStations.Remove(a); } ChangeStationCount--; } while (LinesArray[templine].Stations.Contains(a)) { LinesArray[templine].Stations.Remove(a); } foreach (XmlNode linenode in LineList) { XmlElement lineele = (XmlElement)linenode; if (lineele.GetAttribute("Line_ID") == templine.ToString()) { XmlNodeList nodelist = lineele.ChildNodes; foreach (XmlNode nodenode in nodelist) { XmlElement nodeele = (XmlElement)nodenode; if (nodeele.Name == "Line_Stations") { nodeele.InnerText = LinesArray[templine].StationsToString(); continue; } if (nodeele.Name == "Line_ChangeStations") { nodeele.InnerText = LinesArray[templine].ChangeStationsToString(); continue; } } break; } } } else { for (i = 0; i < linecount; i++) { templine = StationsArray[a].Lines[i]; while (LinesArray[templine].ChangeStations.Contains(a)) { LinesArray[templine].ChangeStations.Remove(a); } while (LinesArray[templine].Stations.Contains(a)) { LinesArray[templine].Stations.Remove(a); } foreach (XmlNode linenode in LineList) { XmlElement lineele = (XmlElement)linenode; if (lineele.GetAttribute("Line_ID") == templine.ToString()) { XmlNodeList nodelist = lineele.ChildNodes; foreach (XmlNode nodenode in nodelist) { XmlElement nodeele = (XmlElement)nodenode; if (nodeele.Name == "Line_Stations") { nodeele.InnerText = LinesArray[templine].StationsToString(); continue; } if (nodeele.Name == "Line_ChangeStations") { nodeele.InnerText = LinesArray[templine].ChangeStationsToString(); continue; } } break; } } } } XmlLine.Save(LineXml); XmlDocument XmlStation = new XmlDocument(); XmlStation.Load(StationXml); XmlNode StationRoot = XmlStation.SelectSingleNode("All_Stations"); XmlNodeList StationList = StationRoot.ChildNodes; foreach (XmlNode stationnode in StationList) { XmlElement stationele = (XmlElement)stationnode; if (stationele.GetAttribute("Station_ID") == a.ToString()) { StationRoot.RemoveChild(stationnode); break; } } XmlStation.Save(StationXml); StationCount--; StationsArray[a] = null; FreeStationNum.Add(a); }