Ejemplo n.º 1
0
        /// <summary>
        /// xmlの内容を全て取得する(1.0.0)
        /// </summary>
        /// <returns>RodDBModel</returns>
        private FishDBModel1_0_0 getFishDB1_0_0(string iRodName)
        {
            string xmlFilename = PATH_FISHDB + @"\" + iRodName + ".xml";

            try
            {
                FishDBModel1_0_0 fishdb = new FishDBModel1_0_0(iRodName);
                if (File.Exists(xmlFilename))
                {
                    for (int i = 0; i < Constants.FILELOCK_RETRY_COUNT; i++)
                    {
                        try
                        {
                            using (FileStream fs = new FileStream(xmlFilename, FileMode.Open, FileAccess.Read, FileShare.Read))
                            {
                                XmlSerializer serializer = new XmlSerializer(typeof(FishDBModel1_0_0));
                                fishdb = (FishDBModel1_0_0)serializer.Deserialize(fs);
                            }
                            break;
                        }
                        catch (IOException)
                        {
                            Thread.Sleep(100);
                            continue;
                        }
                    }
                }
                return(fishdb);
            }
            catch (Exception e)
            {
                logger.Fatal("{0}の取得中にエラーが発生しました。", xmlFilename);
                throw e;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// xmlファイルをコンバートする(1.0.0→1.0.5)
        /// </summary>
        private void convert1_0_0to1_0_5(string iXmlFileName, string iRodName)
        {
            FishDBModel1_0_0 fishdb1_0_0 = getFishDB1_0_0(iRodName);
            FishDBModel      fishdb1_0_5 = new FishDBModel();

            fishdb1_0_5.Version = "1.0.5";
            fishdb1_0_5.RodName = fishdb1_0_0.RodName;
            foreach (FishDBFishModel1_0_0 fish1_0_0 in fishdb1_0_0.Fishes)
            {
                FishDBFishModel fish1_0_5 = new FishDBFishModel();
                //FishDBFishTypeKind.Monster→FishDBFishTypeKind.UnknownMonster
                if (fish1_0_0.FishType == FishDBFishTypeKind.Monster)
                {
                    fish1_0_0.FishType = FishDBFishTypeKind.UnknownMonster;
                }
                fish1_0_5.FishType = fish1_0_0.FishType;
                //FishName
                if (fish1_0_0.FishType == FishDBFishTypeKind.UnknownSmallFish ||
                    fish1_0_0.FishType == FishDBFishTypeKind.UnknownLargeFish ||
                    fish1_0_0.FishType == FishDBFishTypeKind.UnknownItem ||
                    fish1_0_0.FishType == FishDBFishTypeKind.UnknownMonster ||
                    fish1_0_0.FishType == FishDBFishTypeKind.Unknown)
                {
                    if (fish1_0_0.IDs.Count > 0)
                    {
                        fish1_0_5.FishName = FishDB.GetTmpFishNameFromFishType(fish1_0_0.FishType, fish1_0_0.IDs[0].ID1, fish1_0_0.IDs[0].ID2, fish1_0_0.IDs[0].ID3, fish1_0_0.IDs[0].ID4);
                    }
                    else
                    {
                        fish1_0_5.FishName = fish1_0_0.FishName;
                    }
                }
                else
                {
                    fish1_0_5.FishName = fish1_0_0.FishName;
                }
                //ID
                foreach (FishDBIdModel1_0_0 id1_0_0 in fish1_0_0.IDs)
                {
                    FishDBIdModel id1_0_5 = new FishDBIdModel();
                    id1_0_5.ID1      = id1_0_0.ID1;
                    id1_0_5.ID2      = id1_0_0.ID2;
                    id1_0_5.ID3      = id1_0_0.ID3;
                    id1_0_5.ID4      = id1_0_0.ID4;
                    id1_0_5.Count    = id1_0_0.Count;
                    id1_0_5.Critical = id1_0_0.Critical;
                    id1_0_5.ItemType = FishDBItemTypeKind.Common;
                    fish1_0_5.IDs.Add(id1_0_5);
                }
                //エリア 初期化する
                fish1_0_5.ZoneNames = new List <string>();
                //エサ
                fish1_0_5.BaitNames = fish1_0_0.BaitNames;

                fishdb1_0_5.Fishes.Add(fish1_0_5);
            }

            //バックアップ
            string backupFileName = iXmlFileName + ".bak";

            if (File.Exists(backupFileName))
            {
                File.Delete(backupFileName);
            }
            File.Copy(iXmlFileName, backupFileName);
            //xml書き込み
            putFishDB(iRodName, fishdb1_0_5);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// xmlの内容を全て取得する(1.0.0)
 /// </summary>
 /// <returns>RodDBModel</returns>
 private FishDBModel1_0_0 getFishDB1_0_0(string iRodName)
 {
     string xmlFilename = PATH_FISHDB + @"\" + iRodName + ".xml";
     FishDBModel1_0_0 fishdb = new FishDBModel1_0_0(iRodName);
     if (File.Exists(xmlFilename))
     {
         for (int i = 0; i < Constants.FILELOCK_RETRY_COUNT; i++)
         {
             try
             {
                 using (FileStream fs = new FileStream(xmlFilename, FileMode.Open, FileAccess.Read, FileShare.Read))
                 {
                     XmlSerializer serializer = new XmlSerializer(typeof(FishDBModel1_0_0));
                     fishdb = (FishDBModel1_0_0)serializer.Deserialize(fs);
                 }
                 break;
             }
             catch (IOException)
             {
                 Thread.Sleep(100);
                 continue;
             }
         }
     }
     return fishdb;
 }