Exemple #1
0
        public UserSettings LoadSettings(long uid)
        {
            UserSettings userSettings = UserSettingsHolder.LoadSettings(uid);

            if (userSettings == null)
            {
                // There is no UserSettings for specified cookie.
                userSettings = LoadDefaultSettings();
            }

            // Fill currenciesData for todays info.

            IDictionary <CurrencyCodeEntry, CurrencyDataEntry> currenciesData = null;

            DateTime iterator = DateTime.Now;

            while (currenciesData == null)
            {
                currenciesData = CachingProcessor.RequestSingleData(iterator, userSettings.Currencies.Select(x => x.DbCurrencyCodeEntry).ToList());
                iterator       = iterator.Subtract(TimeSpan.FromDays(1));
            }

            userSettings.Currencies = currenciesData.Select((pair) => pair.Value).ToList();

            return(userSettings);
        }
Exemple #2
0
        private UserSettings LoadDefaultSettings()
        {
            UserSettings defaultUserSettings = new UserSettings();

            defaultUserSettings.Language = (CurrencyExplorerLanguage)Enum.Parse(typeof(CurrencyExplorerLanguage), "");

            // Process default period.

            ChartTimePeriod timePeriod = new ChartTimePeriod();

            string configPeriodInDays = "";//Configuration["ExplorerSettings:Defaults:ChartPeriodInDays"];
            double periodInDays       = 10;

            if (double.TryParse(configPeriodInDays, out periodInDays) == false)
            {
                Debug.WriteLine($"Incorrect ChartPeriodInDays value from configuration file. Default valye is set.");
            }

            timePeriod.Begin = DateTime.Now.Subtract(TimeSpan.FromDays(periodInDays));
            timePeriod.End   = DateTime.Now;
            defaultUserSettings.TimePeriod = timePeriod;

            // Get currencies list to be displayed.

            var codesList = Utils.GetListFromConfiguration(Configuration, "ExplorerSettings:Defaults:CurrenciesList");

            List <CurrencyCodeEntry> defaultCodes = new List <CurrencyCodeEntry>();

            var allCodes = CachingProcessor.RequestAllCurrencyCodes().Distinct().ToList();

            defaultCodes.AddRange(allCodes.Where(x => codesList.Contains(x.Alias)));

            defaultUserSettings.Currencies = defaultCodes.Select(x => new CurrencyDataEntry()
            {
                DbCurrencyCodeEntry = x
            });

            return(defaultUserSettings);
        }