Exemplo n.º 1
0
        /// <summary>
        /// To Fetch Today Exchange Rates
        /// </summary>
        /// <returns>Today Exchange Rates</returns>
        public List <ExchangeRate> FetchTodayExchangeRates()
        {
            CurrencyExchangeEntities currencyExchangeEntities = new CurrencyExchangeEntities();
            List <ExchangeRate>      todayExchangeRates       = new List <ExchangeRate>();

            try
            {
                //Fetching Quote resource data
                var dataSources = currencyExchangeEntities.DataSources.Where(x => x.DataElementName.Trim().ToUpper() == _dataElementName);
                foreach (var datasource in dataSources)
                {
                    //Fetching data from resource
                    RateSource currencyRates = ExchangeRateProcessor.GetDataFromSource <RateSource>(datasource.Url);
                    if (currencyRates.Rates == null)
                    {
                        Program.logger.Error("Unable fetch data from resource Url.");
                        return(todayExchangeRates);
                    }
                    else
                    {
                        //Processing and taking rates
                        foreach (var rate in currencyRates.Rates)
                        {
                            ExchangeRate exchangeRate = new ExchangeRate();
                            exchangeRate.DataSourceId = datasource.Id;
                            //Fetching corresponding symbol code from DB
                            var cid = currencyExchangeEntities.Currencies.Where(x => x.Code == rate.Key.Trim().ToUpper()).FirstOrDefault();
                            exchangeRate.CurrencyId = cid.Id;
                            exchangeRate.Rate       = rate.Value;
                            exchangeRate.Date       = DateTime.Today;
                            todayExchangeRates.Add(exchangeRate);
                        }
                    }
                }
                Program.logger.Info("RateSource: Today exchange rates fetched successfully!");
            }
            catch (Exception ex)
            {
                Program.logger.Error("RateSource: Error while fetch today exchange rates.");
                Program.logger.Error(ex.Message);
            }
            return(todayExchangeRates);
        }
Exemplo n.º 2
0
        /// <summary>
        /// To Fetch New Symbols
        /// </summary>
        /// <returns>New Symbols</returns>
        public List <string> FetchNewSymbols()
        {
            List <string> newSymbols = new List <string>();

            try
            {
                CurrencyExchangeEntities currencyExchangeEntities = new CurrencyExchangeEntities();
                List <string>            oldSymbols = currencyExchangeEntities.Currencies.Select(x => x.Code).ToList();
                //Fetching Quote resource data
                var dataSources = currencyExchangeEntities.DataSources.Where(x => x.IsNew == true && x.DataElementName == _dataElementName);
                foreach (var dataSource in dataSources)
                {
                    //Fetching data from resource
                    RateSource currencyRates = ExchangeRateProcessor.GetDataFromSource <RateSource>(dataSource.Url);
                    if (currencyRates.Rates == null)
                    {
                        Program.logger.Error("Unable to fetch data from resource Url.");
                        return(newSymbols);
                    }
                    else
                    {
                        //Taking symbols alone
                        List <string> CurrencySymbols = currencyRates.Rates.Select(x => x.Key.Trim().ToUpper()).ToList();
                        newSymbols.AddRange(CurrencySymbols);
                    }
                }
                Program.logger.Info("RateSource: new symbols fetched successfully!");
            }
            catch (Exception ex)
            {
                Program.logger.Error("RateSource: Error while fetching new symbols.");
                Program.logger.Error(ex.Message);
            }

            return(newSymbols);
        }