示例#1
0
        public override async void OnNavigatedTo(NavigatedToEventArgs e, Dictionary<string, object> viewModelState)
        {
            string errorMessage = string.Empty;
            try
            {
                LoadingData = true;
                var db = Database.DbConnection;

                var accountsList = new ObservableCollection<AccountViewModel>();
                {
                    var result = await db.QueryAsync<AccountViewModel>("select Id, Name from Accounts");
                    AccountsList = new ObservableCollection<AccountViewModel>();
                    foreach (var accountViewModel in result)
                    {
                        AccountsList.Add(accountViewModel);
                    }
                }

                FolderTree = new FolderTreeViewModel();
                await FolderTree.Refresh();
                FolderItems = FolderTree.Children;

                if (FolderItems.Count == 0)
                {
                    _navigationService.Navigate("EmailProvider",new AccountPageParameters() {FolderTree = _folderTree});
                    return;
                }

                var currentAccount = await SettingsMethods.GetSetting("default account") ??
                                     await SettingsMethods.GetSetting("last used account") ??
                                     "0";

                SelectedAccountIndex = Convert.ToInt32(currentAccount);
                var account = await db.FindAsync<Accounts>(AccountsList[SelectedAccountIndex].Id);
                foreach (var folder in FolderItems)
                {
                    if (folder.Expand(account.InFolderId, true)) break;
                }
            }
            catch (Exception ex)
            {
                errorMessage = string.Format(CultureInfo.CurrentCulture,
                    "GeneralServiceErrorMessage",
                    Environment.NewLine,
                    ex.Message);
            }
            finally
            {
                LoadingData = false;
            }
        }