Example #1
0
        private static void FormatAllCards(CardMask cardMask,
            CardFormatInfo cardFormatInfo,
            bool isOnePatternAlreadyProcessed,
            StringBuilder sb,
            IDeck deck,
            char patternChar,
            int num1)
        {
            var cardIndexes = cardFormatInfo.Deck.ToCardIndexes(cardMask);
            var i = 0;
            foreach (var cardIndex in cardIndexes)
            {
                if (i == 0 && isOnePatternAlreadyProcessed)
                {
                    sb.Append(cardFormatInfo.PatternSeparator);
                }

                var rankIndex = deck.ToRankIndex(cardIndex);
                var suitIndex = deck.ToSuitIndex(cardIndex);

                switch (patternChar)
                {
                    case 'i':
                        if (i != 0)
                        {
                            sb.Append(cardFormatInfo.CardIndexesSeparator);
                        }

                        sb.Append(cardIndex.ToString(CultureInfo.CurrentCulture));
                        break;
                    case 'a':
                        FormatAbbreviatedName(cardFormatInfo, i, sb, rankIndex, suitIndex);
                        break;
                    case 'c':
                        FormatName(cardFormatInfo, i, sb, rankIndex, suitIndex);
                        break;
                    case 'r':
                    case 's':
                        FormatAbbreviatedName2(cardFormatInfo, i, sb, patternChar, rankIndex, suitIndex, num1);

                        break;
                    case 'R':
                    case 'S':
                        FormatName2(cardFormatInfo, i, sb, patternChar, rankIndex, suitIndex, num1);
                        break;
                    default:
                        throw new ArgumentException(patternChar.ToString());
                }

                ++i;
            }
        }