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); }
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); }