Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var exchangeHouse = new ExchangeHouse();
            ICurrencyConverter currencyConverter = null;

            while (true)
            {
                #region Getting Amount in Dollars and Currency to Convert
                Console.WriteLine("Enter how much Dollars you have");
                Console.WriteLine(Environment.NewLine);

                var amountInDollar = Convert.ToDecimal(Console.ReadLine());

                Console.WriteLine("Which Currency do you need ?");
                Console.WriteLine("Type 'EUR' for Euro");
                Console.WriteLine(Environment.NewLine);
                Console.WriteLine("Type 'BRL' for Brazilian Real");
                Console.WriteLine(Environment.NewLine);

                var currency = Console.ReadLine().ToUpper();
                #endregion

                #region Getting Specific Converter
                switch (currency)
                {
                case "BRL":
                    currencyConverter = new BrazilianCurrencyConverter();
                    break;

                case "EUR":
                    currencyConverter = new EuroCurrencyConverter();
                    break;

                default:
                {
                    //Here Using the Null Object Representation
                    currencyConverter = NullCurrencyConverter.GetNullCurrencyConverter();
                }
                break;
                }
                #endregion

                exchangeHouse.SetCurrency(currencyConverter);
                var exchangedMoney = exchangeHouse.CashConvertedCurrency(amountInDollar);

                Console.WriteLine(string.Format("You now have {0} in {1}", exchangedMoney.ToString("C"), currency));
                Console.WriteLine(Environment.NewLine);
            }
        }
Ejemplo n.º 2
0
 public static NullCurrencyConverter GetNullCurrencyConverter()
 {
     //Using Singleton - Not necessary to have multiple instances of the same class with no behaviour
     return(nullCurrencyConverter = (nullCurrencyConverter ?? new NullCurrencyConverter()));
 }