LoadAppSetting(System.Action loadCurrencyTable)
        {
            try
            {
                AppSettingRepository instance = AppSettingRepository.Instance;
                AppSetting.instance = instance.FirstOfDefault();
                if (AppSetting.instance == null)
                {
                    string name = System.Threading.Thread.CurrentThread.CurrentCulture.Name;
                    AppSetting setting = new AppSetting
                    {
                        Id = System.Guid.NewGuid(),
                        EnablePoketLock = false,
                        DisplayLanguage = name,
                        DefaultCurrency = CurrencyHelper.ConvertCurrencyBy(System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencySymbol),
                        UserId = System.Guid.NewGuid(),
                        EnableAllAccountOverdraft = true,
                        ShowRepaymentInfoOnTile = true,
                        FavoritesPageVisibiable = Visibility.Visible,
                        BudgetStatsicSettings = new BudgetStatsicSetting(),
                        EnableVoiceCommand = true,
                        VoiceCommandSettingUnitOfPrice = "",
                    };
                    AppSetting.instance = setting;
                    AppSetting.instance.AutoBackupWhenAppUp = true;
                    instance.Add(AppSetting.instance);


                    RapidContext.CurrentContext.SaveChanges();
                }

                if (AppSetting.instance.BudgetStatsicSettings == null)
                {
                    AppSetting.instance.BudgetStatsicSettings = new BudgetStatsicSetting();
                }

                AppSetting.instance.BudgetStatsicSettings.Calculate();
                AppSetting.instance.DisplayLanguage = AppSetting.instance.DisplayLanguage ?? System.Threading.Thread.CurrentThread.CurrentUICulture.Name;

                AppSetting.instance.ShowAssociatedAccountItemSummary = false;
                if (!LanguageType.SupportDisplayLanguages.Contains<string>(AppSetting.instance.DisplayLanguage))
                {
                    AppSetting.instance.DisplayLanguage = "en-US";
                }
                loadCurrencyTable();
            }
            catch (System.Exception)
            {
            }
        }