public Task<bool> RemoveDocumentFromWalletAsync(Wallet wallet, Document doc) { return RunFunctionIfOpenAsyncTB(async delegate { bool isOk = false; if (wallet != null) { await wallet.OpenAsync(); isOk = await wallet.RemoveDocumentAsync(doc); if (wallet.Documents.Count < 1) // if there are no more documents in the wallet, delete the wallet, too { var folder = _folder; if (folder != null) { isOk = isOk & await folder.RemoveWalletAsync(wallet).ConfigureAwait(false); } else { isOk = false; } } } return isOk; }); }
private async Task<bool> RemoveWallet2Async(Wallet wallet) { if (wallet != null && wallet.ParentId == Id) { await DBManager.DeleteFromWalletsAsync(wallet); await RunInUiThreadAsync(delegate { _wallets.Remove(wallet); }).ConfigureAwait(false); await wallet.OpenAsync().ConfigureAwait(false); await wallet.RemoveDocumentsAsync().ConfigureAwait(false); await wallet.CloseAsync().ConfigureAwait(false); wallet.Dispose(); return true; } return false; }
public Task<bool> ImportMediaFileIntoNewWalletAsync(StorageFile file) { return RunFunctionIfOpenAsyncTB(async delegate { if (DBManager != null && file != null) { var newWallet = new Wallet(DBManager, Id); await newWallet.OpenAsync().ConfigureAwait(false); // open the wallet or the following won't run bool isOk = await newWallet.ImportFileAsync(file).ConfigureAwait(false) && await AddWallet2Async(newWallet).ConfigureAwait(false); if (isOk) { return true; } else { await RemoveWallet2Async(newWallet).ConfigureAwait(false); } } return false; }); }
private async Task<bool> AddWallet2Async(Wallet wallet) { if (wallet != null) { if (Wallet.Check(wallet)) { var dbM = DBManager; if (dbM != null && await dbM.InsertIntoWalletsAsync(wallet)) { await RunInUiThreadAsync(delegate { _wallets.Add(wallet); }).ConfigureAwait(false); await wallet.OpenAsync().ConfigureAwait(false); return true; } } else { Logger.Add_TPL("ERROR in Folder.AddWalletAsync(): new wallet did not stand Wallet.CheckAllowedValues()", Logger.ForegroundLogFilename); } } return false; }