/// <summary> /// 指定したFileCodeの言語ファイルを取り出し、言語エントリーを追加する。 /// 言語ファイルが存在しない場合は、新たに作成後、言語エントリーを追加する。 /// </summary> /// <param name="fileCode">FileCode</param> /// <param name="langEntry">言語エントリー</param> public void AddFileEntry(long fileCode, MieLanguageEntry langEntry) { if (this.Items.ContainsKey(fileCode)) { //// 言語ファイルが存在する。 var langFile = this.Items[fileCode]; langFile.AddEntry(langEntry); } else { //// 言語ファイルが存在しない。 MieLanguageFile mieLanguageFile = new MieLanguageFile(fileCode); mieLanguageFile.AddEntry(langEntry); this.Items.Add(mieLanguageFile.FileCode, mieLanguageFile); } }
/// <summary> /// 言語エントリーの追加し、その言語エントリーを返す。 /// </summary> /// <param name="mieLanguageEntry">言語エントリー</param> /// <returns>追加した言語エントリー</returns> public MieLanguageEntry AddEntry(MieLanguageEntry mieLanguageEntry) { if (this.items.ContainsKey(mieLanguageEntry.ID)) { var msg = $"Duplicate MieLanguageEntry key({mieLanguageEntry.ID}). FileID{this.FileCode}"; logger.Error(msg); Console.WriteLine(msg); return(null); ////throw new Exception(msg); } else { this.items.Add(mieLanguageEntry.ID, mieLanguageEntry); return(mieLanguageEntry); } }
/// <summary> /// 言語エントリーを更新し、更新後の言語エントリーを返す。 /// 更新後の言語エントリーはアーカイブにも保管する。 /// また、言語エントリーが存在しない場合は追加する。 /// </summary> /// <param name="mieLanguageEntry">言語エントリー</param> /// <returns>更新後のエントリー</returns> public MieLanguageEntry UpdateEntry(MieLanguageEntry mieLanguageEntry) { if (this.items.ContainsKey(mieLanguageEntry.ID)) { var oldEntry = this.items[mieLanguageEntry.ID]; if ((oldEntry.DefaultText == mieLanguageEntry.DefaultText) && (oldEntry.FemaleText == mieLanguageEntry.FemaleText)) { //// 更新しようとしたがテキストに変更がなかった。 logger.Warn($"Update canceled. Text was not changed. FileID({this.FileCode}) ID({mieLanguageEntry.ID})"); return(mieLanguageEntry); } else { //// 更新時は旧言語エントリーの製品区分を反映するため、新たに言語エントリーを作り直す。 MieLanguageEntry newEntry = new MieLanguageEntry( mieLanguageEntry.ID, mieLanguageEntry.DefaultText, mieLanguageEntry.FemaleText, mieLanguageEntry.ProductLine | oldEntry.ProductLine, // 旧言語エントリーの製品区分を反映する。 mieLanguageEntry.ReferenceID, mieLanguageEntry.UpdatedAt); mieLanguageEntry = null; this.RemoveEntry(oldEntry.ID); this.AddEntry(newEntry); //// 更新された言語エントリーをアーカイブする。 this.Histories.Archibe(oldEntry); logger.Info($"marged. ID({newEntry.ID})"); return(newEntry); } } else { this.AddEntry(mieLanguageEntry); return(mieLanguageEntry); } }
public MieLanguageEntry Clone() { var mieLanguageEntry = new MieLanguageEntry(this.ID, this.DefaultText, this.FemaleText, this.ProductLine, this.ReferenceID, this.UpdatedAt); return(mieLanguageEntry); }