コード例 #1
0
        public void StartConversion(string sourceName, string fromCurrency, string toCurrency, decimal?amount, DateTime?conversionDate)
        {
            try
            {
                if (!AuthenticationManager.GetAuthenticationManagerInstance().IsValidSource(sourceName))
                {
                    Console.WriteLine(String.Format("Invalid Source Name: '{0}'", sourceName));
                    return;
                }

                if (!AuthenticationManager.GetAuthenticationManagerInstance().IsActiveSource(sourceName))
                {
                    Console.WriteLine(String.Format("Source Name: '{0}' is not active", sourceName));
                    return;
                }

                IConverterRequestDependancy converterRequestDependancy = BuildRequestDependancy(sourceName);
                if (converterRequestDependancy != null)
                {
                    ConverterRequest converterRequest = new ConverterRequest(fromCurrency, toCurrency, amount, conversionDate);
                    ((IRequestInjection)converterRequest).InjectRequest(converterRequestDependancy);

                    SetAttributesToRequestDependancy(sourceName, fromCurrency, toCurrency, amount, conversionDate, ref converterRequest);
                    converterRequest.ProcessRequest(converterRequest);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #2
0
 public void ProcessRequest(ConverterRequest request)
 {
     try
     {
         if (request != null)
         {
             _converterRequestDependancy.ProcessRequest(request);
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #3
0
        public void ProcessRequest(ConverterRequest converterRequest)
        {
            try
            {
                if (converterRequest == null)
                {
                    return;
                }

                Console.WriteLine("***********************************************************************");
                Console.WriteLine("YahooAPIWrapper: ProcessRequest(...) method has been started...");
                Console.WriteLine("     API Name        :   " + converterRequest.SourceAPI.Name);
                Console.WriteLine("     API URL         :   " + converterRequest.SourceAPI.URL);
                Console.WriteLine("     From Currency   :   " + converterRequest.FromCurrency);
                Console.WriteLine("     To Currency     :   " + converterRequest.ToCurrency);
                Console.WriteLine("     Conversion      :       Conversion Logic executes successfully!");
                Console.WriteLine("YahooAPIWrapper: ProcessRequest(...) method runs successfully...");
                Console.WriteLine("***********************************************************************");
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #4
0
        private void SetAttributesToRequestDependancy(string sourceName, string fromCurrency, string toCurrency, decimal?amount, DateTime?conversionDate, ref ConverterRequest converterRequest)
        {
            try
            {
                var sourceAPI = AuthenticationManager.GetAuthenticationManagerInstance().GetSourceAPIMaster(sourceName);
                if (sourceAPI != null)
                {
                    converterRequest.SourceAPI        = new SourceAPI();
                    converterRequest.SourceAPI.Params = new System.Collections.Generic.Dictionary <string, string>();
                    converterRequest.SourceAPI.AuthenticationParams = new System.Collections.Generic.Dictionary <string, string>();
                    converterRequest.SourceAPI.Name = sourceAPI.SourceAPIName;
                    converterRequest.SourceAPI.URL  = sourceAPI.SourceAPIURL;
                    converterRequest.SourceAPI.IsAuthenticationRequired = false;
                    converterRequest.SourceAPI.Params.Add("FromCurrency", fromCurrency);
                    converterRequest.SourceAPI.Params.Add("ToCurrency", toCurrency);
                    converterRequest.FromCurrency = fromCurrency;
                    converterRequest.ToCurrency   = toCurrency;
                    if (amount.HasValue && amount > 0)
                    {
                        converterRequest.SourceAPI.Params.Add("Amount", Convert.ToString(amount));
                        converterRequest.Amount = amount;
                    }

                    if (conversionDate.HasValue)
                    {
                        converterRequest.SourceAPI.Params.Add("ConversionDate", Convert.ToString(conversionDate));
                        converterRequest.ConversionDate = conversionDate;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }