/// <summary> /// Gets the supported card types based on a provided card type list. If no card type list is provided, return the full supported list. /// </summary> /// <param name="chosenCardTypes">The provided card types.</param> /// <returns>The supported card types.</returns> public static string GetSupportedCardTypes(string chosenCardTypes) { string[] chosenCardTypeArray = CardTypes.ToArray(chosenCardTypes); if (chosenCardTypeArray == null || chosenCardTypeArray.Length == 0) { // Return the full list of supported card types return(CardTypes.ToString(CardTypes.supportedCardTypes)); } else { // Filter unsupported card types var supportedChosenCardTypes = new List <string>(); foreach (var chosenCardType in chosenCardTypeArray) { foreach (var supportedCardType in CardTypes.supportedCardTypes) { if (supportedCardType.Equals(chosenCardType, StringComparison.OrdinalIgnoreCase)) { supportedChosenCardTypes.Add(supportedCardType); } } } return(CardTypes.ToString(supportedChosenCardTypes.ToArray())); } }