/// <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; } }
/// <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); }
/// <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; }