/// <summary> /// xmlファイルをコンバートする(1.0.0→1.0.5) /// </summary> /// <returns></returns> private void convert1_0_0to1_0_5(string iXmlFileName, string iPlayerName, DateTime iYmd) { FishHistoryDBModel1_0_0 history1_0_0 = getHistoryDB1_0_0(iPlayerName, iYmd); FishHistoryDBModel1_0_5 history1_0_5 = new FishHistoryDBModel1_0_5(); history1_0_5.Version = "1.0.5"; history1_0_5.PlayerName = history1_0_0.PlayerName; history1_0_5.EarthDate = history1_0_0.EarthDate.ToShortDateString(); foreach (FishHistoryDBFishModel1_0_0 fish1_0_0 in history1_0_0.Fishes) { FishHistoryDBFishModel1_0_5 fish1_0_5 = new FishHistoryDBFishModel1_0_5(); fish1_0_5.FishName = fish1_0_0.FishName; fish1_0_5.ZoneName = fish1_0_0.ZoneName; fish1_0_5.RodName = fish1_0_0.RodName; fish1_0_5.BaitName = fish1_0_0.BaitName; fish1_0_5.ID1 = fish1_0_0.ID1; fish1_0_5.ID2 = fish1_0_0.ID2; fish1_0_5.ID3 = fish1_0_0.ID3; fish1_0_5.ID4 = fish1_0_0.ID4; fish1_0_5.Critical = fish1_0_0.Critical; fish1_0_5.FishCount = fish1_0_0.FishCount; if (fish1_0_0.ID1 == 0 && fish1_0_0.ID2 == 0 && fish1_0_0.ID3 == 0 && fish1_0_0.ID4 == 0) { fish1_0_5.ItemType = FishDBItemTypeKind.Unknown; } else { fish1_0_5.ItemType = FishDBItemTypeKind.Common; } fish1_0_5.FishType = fish1_0_0.FishType; fish1_0_5.Result = fish1_0_0.Result; fish1_0_5.EarthTime = fish1_0_0.EarthTime.ToString(); fish1_0_5.VanaTime = fish1_0_0.VanaTime + ":00"; fish1_0_5.VanaWeekDay = fish1_0_0.VanaWeekDay; fish1_0_5.MoonPhase = fish1_0_0.MoonPhase; fish1_0_5.X = (float)Math.Round(fish1_0_0.X, 1, MidpointRounding.AwayFromZero); fish1_0_5.Y = (float)Math.Round(fish1_0_0.Y, 1, MidpointRounding.AwayFromZero); fish1_0_5.Z = (float)Math.Round(fish1_0_0.Z, 1, MidpointRounding.AwayFromZero); fish1_0_5.H = (float)Math.Round(fish1_0_0.H, 1, MidpointRounding.AwayFromZero); history1_0_5.Fishes.Add(fish1_0_5); } //バックアップ string backupFileName = iXmlFileName + ".bak"; if (File.Exists(backupFileName)) { File.Delete(backupFileName); } File.Copy(iXmlFileName, backupFileName); //xml書き込み PutHistoryDB1_0_5(iPlayerName, history1_0_5); }
/// <summary> /// xmlの内容を全て取得する(1.0.0) /// </summary> /// <returns>FishHistoryDBModel</returns> private FishHistoryDBModel1_0_0 getHistoryDB1_0_0(string iPlayerName, DateTime iYmd) { string xmlFilename = GetXmlName(iPlayerName, iYmd); try { FishHistoryDBModel1_0_0 historydb = new FishHistoryDBModel1_0_0(); if (!Directory.Exists(PATH_FISHHISTORYDB)) { Directory.CreateDirectory(PATH_FISHHISTORYDB); } 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(FishHistoryDBModel1_0_0)); historydb = (FishHistoryDBModel1_0_0)serializer.Deserialize(fs); fs.Close(); } break; } catch (IOException) { Thread.Sleep(100); continue; } } } return(historydb); } catch (Exception e) { logger.Fatal("{0}の取得中にエラーが発生しました。", xmlFilename); throw e; } }
/// <summary> /// xmlの内容を全て取得する(1.0.0) /// </summary> /// <returns>FishHistoryDBModel</returns> private FishHistoryDBModel1_0_0 getHistoryDB1_0_0(string iPlayerName, DateTime iYmd) { string xmlFilename = GetXmlName(iPlayerName, iYmd); FishHistoryDBModel1_0_0 historydb = new FishHistoryDBModel1_0_0(); if (!Directory.Exists(PATH_FISHHISTORYDB)) { Directory.CreateDirectory(PATH_FISHHISTORYDB); } 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(FishHistoryDBModel1_0_0)); historydb = (FishHistoryDBModel1_0_0)serializer.Deserialize(fs); fs.Close(); } break; } catch (IOException) { Thread.Sleep(100); continue; } } } return historydb; }