Example #1
0
        string getRomanDigitPreview(int number)
        {
            RomansCatalog catalog = RomansCatalog.GetInstance();

            Roman[] romans = catalog.GetAll();

            Roman previous = null;

            foreach (Roman n in romans)
            {
                if (number == n)
                {
                    return(n.Letter);
                }
                else
                if (number > n)
                {
                    previous = n;
                }
                else
                {
                    break;
                }
            }

            return(previous.Letter + getRomanDigitPreview(number - previous.Value));
        }
Example #2
0
        public int ConvertToNumber(string roman)
        {
            string start  = "";
            string result = roman;

            while (start != result)
            {
                start = result;
                foreach (ReplacementPattern r in ReplacementPatternCatalog.GetInstance().GetAll())
                {
                    result = r.ReverseReplace(result);
                }
            }

            int number = 0;

            foreach (char c in result)
            {
                number += RomansCatalog.GetInstance().GetOne(c).Value;
            }

            return(number);
        }