public EmbedBuilder DetermineTypeOfMessage(string matchName)
        {
            MTGCardOutput MessageOutput = new MTGCardOutput();

            var cardData = GetScryFallData.PullScryfallData(matchName);

            if (cardData == null)
            {
                var formattedName = FormatUserInput.FormatEntry(matchName).ToLower();

                var autoComplete = GetScryFallData.PullScryFallAutoComplete(formattedName);

                if (autoComplete.data.Count == 0)
                {
                    return(MessageOutput.DetermineFailure(0));
                }
                else
                {
                    return(MessageOutput.DetermineFailure(0, autoComplete, formattedName));
                }
            }

            if (matchName.Contains('?'))
            {
                return(MessageOutput.RulingOutput(GetScryFallData.PullScryFallRuleData(cardData.Id), cardData));
            }
            else
            {
                return(MessageOutput.CardOutput(cardData));
            }
        }
        public static ScryfallDataModel.BaseCodeObject PullScryfallData(string cardname)
        {
            var PullCard = new ScryfallDataModel.BaseCodeObject();

            cardname = FormatUserInput.FormatEntry(cardname);

            if (CardDictionary.ContainsKey(cardname))
            {
                return(CardDictionary[cardname]);
            }
            //Store downloaded summary into memory.
            string CallAPI = ExactScryFall(cardname);

            if (CallAPI != null)
            {
                PullCard = JsonConvert.DeserializeObject <ScryfallDataModel.BaseCodeObject>(CallAPI, JsonDeserializeHelper.settings);
                PullCard.AllLegalities = SetLegalList(PullCard.Legalities);
                CardDictionary.Add(cardname, PullCard);
                return(PullCard);
            }
            return(null);
        }