/// <summary> /// 一括編集 /// </summary> /// <param name="args">一括編集のパラメータ</param> public static void BatchEdit(LeaderBatchEditArgs args) { LogBatchEdit(args); IEnumerable<Leader> leaders = GetBatchEditLeaders(args); Country newCountry; switch (args.ActionMode) { case BatchActionMode.Modify: // 指揮官を一括編集する foreach (Leader leader in leaders) { BatchEditLeader(leader, args); } break; case BatchActionMode.Copy: // 指揮官をコピーする newCountry = args.Destination; int id = args.Id; foreach (Leader leader in leaders) { id = GetNewId(id); Leader newLeader = new Leader(leader) { Country = newCountry, Id = id }; newLeader.SetDirtyAll(); Items.Add(newLeader); } // コピー先の国の編集済みフラグを設定する SetDirty(newCountry); // コピー先の国がファイル一覧に存在しなければ追加する if (!FileNameMap.ContainsKey(newCountry)) { FileNameMap.Add(newCountry, Game.GetLeaderFileName(newCountry)); SetDirtyList(); } break; case BatchActionMode.Move: // 指揮官を移動する newCountry = args.Destination; foreach (Leader leader in leaders) { // 移動前の国の編集済みフラグを設定する SetDirty(leader.Country); leader.Country = newCountry; leader.SetDirty(LeaderItemId.Country); } // 移動先の国の編集済みフラグを設定する SetDirty(newCountry); // 移動先の国がファイル一覧に存在しなければ追加する if (!FileNameMap.ContainsKey(newCountry)) { FileNameMap.Add(newCountry, Game.GetLeaderFileName(newCountry)); SetDirtyList(); } break; } }