public static ICurrencyConvert GetCurrencyConverter(CurrencyEnum currencyType, IEnumerable <CurrencyExchange> theCurrencies)
        {
            ICurrencyConvert strategy             = null;
            string           currencyExchangeName = "GBP-";

            switch (currencyType)
            {
            case CurrencyEnum.GBP:
                strategy = new PRCCurrencyConverter(CurrencyEnum.GBP, 1);
                break;

            case CurrencyEnum.USD:
                currencyExchangeName += "USD";
                strategy              = new PRCCurrencyConverter(CurrencyEnum.USD, (decimal)theCurrencies.First(x => x.CurrencyExchangeName == currencyExchangeName).CurrencyExchangeRate);
                break;

            case CurrencyEnum.EUR:
                currencyExchangeName += "EUR";
                strategy              = new PRCCurrencyConverter(CurrencyEnum.EUR, (decimal)theCurrencies.First(x => x.CurrencyExchangeName == currencyExchangeName).CurrencyExchangeRate);
                break;

            case CurrencyEnum.CAD:
                currencyExchangeName += "CAD";
                strategy              = new PRCCurrencyConverter(CurrencyEnum.CAD, (decimal)theCurrencies.First(x => x.CurrencyExchangeName == currencyExchangeName).CurrencyExchangeRate);
                break;

            default:
                strategy = new PRCCurrencyConverter(CurrencyEnum.GBP, 1);
                break;
            }

            return(strategy);
        }
        public static IHtmlString CurrencyConvert(this HtmlHelper helper, decimal?valueToconvert, ICurrencyConvert converter)
        {
            //strategy to pick correct conversion
            if (valueToconvert != null)
            {
                var newValue = decimal.Round(converter.Convert((decimal)valueToconvert), 2, MidpointRounding.AwayFromZero);
                return(new HtmlString(newValue.ToString()));
            }

            return(new HtmlString("0.00"));
        }