Esempio n. 1
0
		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;
			});
		}
Esempio n. 2
0
		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;
		}
Esempio n. 3
0
		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;
			});
		}
Esempio n. 4
0
		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;
		}