Esempio n. 1
0
        private void DoComAddRoom()
        {
            TRoom room = new TRoom(this);

            fRoomList.Add(room);
            CurRoom  = room;
            IsChange = true;
            OnPropertyChanged("RoomList");
            OnPropertyChanged("CurRoom");
            OnPropertyChanged("IsEnableDelRoom");
        }
Esempio n. 2
0
 private void DoComDelRoom()
 {
     if (IsEnableDelRoom)
     {
         TRoom old = CurRoom;
         int   n   = fRoomList.IndexOf(old);
         CurRoom = (n == fRoomList.Count - 1 ? RoomList[n - 1] : RoomList[n + 1]);
         fRoomList.Remove(old);
         IsChange = true;
         OnPropertyChanged("RoomList");
         OnPropertyChanged("CurRoom");
         OnPropertyChanged("IsEnableDelRoom");
     }
 }
Esempio n. 3
0
 public TTable(TRoom parent)
 {
     Parent      = parent;
     ComSetLeft  = new RelayCommand(DoComSetLeft);
     ComSetRight = new RelayCommand(DoComSetRight);
 }
Esempio n. 4
0
        public void SetXml(XmlDocument xml)
        {
            XmlNode xRoot = xml.SelectSingleNode("/OlimpSet");

            if (xRoot == null)
            {
                throw new Exception("Не найден тег «/OlimpSet»");
            }
            XmlNode xVersion = xRoot.SelectSingleNode("Version");

            if (xVersion == null)
            {
                throw new Exception("Не найден тег «/OlimpSet/Version»");
            }
            if (Util.NormStr(xVersion.InnerText) != "1.0")
            {
                throw new Exception("Неизвестная версия");
            }
            #region PersList
            XmlNode xPersList = xRoot.SelectSingleNode("PersList");
            if (xPersList == null)
            {
                throw new Exception("Не найден тег «/OlimpSet/PersList»");
            }
            List <TPers> lsPers = new List <TPers>();
            foreach (XmlNode xPers in xPersList.SelectNodes("Pers"))
            {
                XmlNode xFio = xPers.SelectSingleNode("Fio");
                if (xFio == null)
                {
                    throw new Exception("Не найден тег «.../Pers/Fio»");
                }
                string  Fio    = Util.NormStr(xFio.InnerText);
                XmlNode xLevel = xPers.SelectSingleNode("Level");
                if (xLevel == null)
                {
                    throw new Exception("Не найден тег «.../Pers/Level»");
                }
                int     Level   = int.Parse(Util.NormStr(xLevel.InnerText));
                XmlNode xSymbol = xPers.SelectSingleNode("Symbol");
                if (xSymbol == null)
                {
                    throw new Exception("Не найден тег «.../Pers/Symbol»");
                }
                string  Symbol = Util.NormStr(xSymbol.InnerText);
                XmlNode xRem   = xPers.SelectSingleNode("Rem");
                if (xRem == null)
                {
                    throw new Exception("Не найден тег «.../Pers/Rem»");
                }
                string Rem = Util.NormStr(xRem.InnerText);
                lsPers.Add(new TPers(this, Fio, Level, Symbol, Rem));
            }
            PersList = lsPers.ToArray();
            #endregion
            #region ColorList
            List <TLevel> lsLevel    = new List <TLevel>();
            XmlNode       xColorList = xRoot.SelectSingleNode("ColorList");
            if (xColorList == null)
            {
                throw new Exception("Не найден тег «/OlimpSet/ColorList»");
            }
            foreach (XmlNode xColor in xColorList.SelectNodes("Color"))
            {
                XmlNode xLevel = xColor.SelectSingleNode("Level");
                if (xLevel == null)
                {
                    throw new Exception("Не найден тег «.../Color/Level»");
                }
                int     Level = int.Parse(Util.NormStr(xLevel.InnerText));
                XmlNode xRGB  = xColor.SelectSingleNode("RGB");
                if (xRGB == null)
                {
                    throw new Exception("Не найден тег «.../Pers/RGB»");
                }
                Color  Color = (Color)ColorConverter.ConvertFromString(Util.NormStr(xRGB.InnerText));
                TLevel lvl   = new TLevel(this, Level);
                lvl.Color = Color;
                lsLevel.Add(lvl);
            }
            LevelList = (from x in lsLevel orderby x.Level select x).ToArray();
            #endregion
            #region RoomList
            fRoomList.Clear();
            XmlNode xRoomList = xRoot.SelectSingleNode("RoomList");
            if (RoomList == null)
            {
                throw new Exception("Не найден тег «/OlimpSet/RoomList»");
            }
            foreach (XmlNode xRoom in xRoomList.SelectNodes("Room"))
            {
                XmlNode xNumRoom = xRoom.SelectSingleNode("NumRoom");
                if (xNumRoom == null)
                {
                    throw new Exception("Не найден тег «.../Room/NumRoom»");
                }
                string  NumRoom = Util.NormStr(xNumRoom.InnerText);
                XmlNode xBoss   = xRoom.SelectSingleNode("Boss");
                if (xBoss == null)
                {
                    throw new Exception("Не найден тег «.../Room/Boss»");
                }
                string Boss = Util.NormStr(xBoss.InnerText);
                TRoom  room = new TRoom(this);
                fRoomList.Add(room);
                room.NumRoom = NumRoom;
                room.Boss    = Boss;
                #region TableList
                XmlNode xTableList = xRoom.SelectSingleNode("TableList");
                if (xTableList == null)
                {
                    throw new Exception("Не найден тег «.../Room/TableList»");
                }
                foreach (XmlNode xTable in xTableList.SelectNodes("Table"))
                {
                    XmlNode xRow = xTable.SelectSingleNode("Row");
                    if (xRow == null)
                    {
                        throw new Exception("Не найден тег «.../Table/Row»");
                    }
                    int     Row  = int.Parse(Util.NormStr(xRow.InnerText));
                    XmlNode xCol = xTable.SelectSingleNode("Col");
                    if (xCol == null)
                    {
                        throw new Exception("Не найден тег «.../Table/Col»");
                    }
                    int     Col   = int.Parse(Util.NormStr(xCol.InnerText));
                    TTable  tb    = room.TableList[Row - 1, Col - 1];
                    XmlNode xLeft = xTable.SelectSingleNode("Left");
                    if (xLeft == null)
                    {
                        throw new Exception("Не найден тег «.../Table/Left»");
                    }
                    int     Left   = int.Parse(Util.NormStr(xLeft.InnerText));
                    XmlNode xRight = xTable.SelectSingleNode("Right");
                    if (xRight == null)
                    {
                        throw new Exception("Не найден тег «.../Table/Right»");
                    }
                    int Right = int.Parse(Util.NormStr(xRight.InnerText));
                    if (Left != 0)
                    {
                        tb.Left = PersList[Left - 1];
                    }
                    if (Right != 0)
                    {
                        tb.Right = PersList[Right - 1];
                    }
                }
                #endregion
            }
            #endregion
            CurRoom  = RoomList[0];
            CurLevel = LevelList[0];
            OnPropertyChanged();
        }