public static bool isValidCard(String cc)
    {
        cc = cc.Replace(" ", string.Empty);

        // Check if cc flag is valid
        if (!CreditCardValidator.isValidFlag(cc))
        {
            return(false);
        }

        int sum = 0;

        char[] reverseCC = cc.ToCharArray();
        Array.Reverse(reverseCC);

        for (int i = 0; i < reverseCC.Length; i++)
        {
            if (i % 2 == 0)
            {
                sum += Convert.ToInt16(reverseCC[i].ToString());
            }
            else
            {
                int newValue = (int)(Convert.ToInt16((reverseCC[i].ToString())) * 2);
                sum += Convert.ToInt16((newValue > 9 ? (newValue - 9) : newValue).ToString());
            }
        }

        if ((sum % 10) == 0)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }