Ejemplo n.º 1
0
        static void EraseRank()
        {
            int rankIndexToErase = TextMenu.ShowNumber("Which rank to delete?",
                                                       1, RankManager.Ranks.Count);

            if (rankIndexToErase == -1)
            {
                return;
            }

            Rank rankToErase = RankManager.Ranks[rankIndexToErase - 1];
            Rank subRank;

            if (RankManager.Ranks.Count > 2)
            {
                Console.WriteLine();
                WriteWarning(RankEraseWarning, rankToErase.Name);

                while (true)
                {
                    int substitute = TextMenu.ShowNumber("Substitute rank",
                                                         1, RankManager.Ranks.Count);
                    if (substitute == rankIndexToErase)
                    {
                        Console.WriteLine("Cannot substitute rank with itself; pick a different rank.");
                    }
                    else
                    {
                        subRank = RankManager.Ranks[substitute - 1];
                        break;
                    }
                }
            }
            else
            {
                subRank = rankToErase.NextRankDown ?? rankToErase.NextRankUp;
            }

            if (TextMenu.ShowYesNo("Delete rank {0}, and substitute with {1}?",
                                   rankToErase.Name, subRank.Name))
            {
                RankManager.DeleteRank(rankToErase, subRank);
            }
        }