// constructor

            public LineRecord(int lineId) // sets up record structure
            {
                this.LineId   = lineId;
                this.LineName = LineDiction.GetValue(lineId);
                Records       = new List <Record>();
                DefaultStroke = new SolidColorBrush(LineDiction.GetLineColor(this.LineId)); // TODO : change s.t. are actual line colours

                for (int i = 0; i < MetroNetwork.Lines[lineId].Branches.Count(); i++)
                {
                    for (int j = 0; j < MetroNetwork.Lines[lineId].Branches[i].StopSequence.Count() - 1; j++)
                    {
                        Records.Add(new Record(lineId, i, j));

                        if (InValid(Records.Last()))
                        {
                            Records.RemoveAt(Records.Count() - 1);
                        }

                        else
                        {
                            Records.Last().DrawEdge(DefaultStroke);
                        }
                    }
                }
            }
        public string CutEdge(int index)
        {
            Node child = Children[index];

            MetroNetwork.InsertBreakBetween(ParentId, child);

            string rec = LineDiction.GetValue(child.LineIndex) + ": " + StationDiction.GetValue(ParentId) + " - " + StationDiction.GetValue(child.StationId);

            return(rec);
        }
        // editing methods

        public List <string> GetNeighbourNames(int parentId)
        {
            Children.Clear();
            this.ParentId = parentId;
            List <string> neighbours = new List <string>();

            Children = MetroNetwork.GenChildrenFromStationId(this.ParentId);
            string val;

            foreach (var child in Children)
            {
                val = LineDiction.GetValue(child.LineIndex) + ": " + StationDiction.GetValue(child.StationId);
                neighbours.Add(val);
            }

            return(neighbours);
        }