protected virtual void handleMonsterFor(ExtraDeckDTO extraDeckDTO, Card card, string lowerCardType)
 {
     handleXYZPendulumMonster(extraDeckDTO, card, lowerCardType);
     handlePendulumSynchroMonster(extraDeckDTO, card, lowerCardType);
     handlePendulumFusionMonster(extraDeckDTO, card, lowerCardType);
     handleXYZMonster(extraDeckDTO, card, lowerCardType);
     handleSynchroMonster(extraDeckDTO, card, lowerCardType);
     handleFusionMonster(extraDeckDTO, card, lowerCardType);
     handleLinkMonster(extraDeckDTO, card, lowerCardType);
 }
        /// <inheritdoc />
        public ExtraDeckDTO CreateExtraDeckDto(Decklist decklist)
        {
            var extraDeckDto = new ExtraDeckDTO();

            foreach (var card in decklist.ExtraDeck)
            {
                var lowerCardType = card.Type.ToLower();
                handleMonsterFor(extraDeckDto, card, lowerCardType);
            }

            return(extraDeckDto);
        }