Exemplo n.º 1
0
		private async Task<bool> RemoveFolder2Async(Folder folder)
		{
			if (folder == null) return false;

			if (await _dbManager.DeleteFromFoldersAsync(folder))
			{
				if (folder.Id == _currentFolderId)
				{
					int previousFolderIndex = Math.Max(0, _folders.IndexOf(folder) - 1);
					CurrentFolderId = _folders.Count > previousFolderIndex ? _folders[previousFolderIndex].Id : DEFAULT_ID;
					await UpdateCurrentFolder2Async(false);
				}

				await RunInUiThreadAsync(delegate { _folders.Remove(folder); }).ConfigureAwait(false);

				await folder.OpenAsync().ConfigureAwait(false);
				await folder.RemoveWalletsAsync().ConfigureAwait(false);
				await folder.CloseAsync().ConfigureAwait(false);
				folder.Dispose();

				return true;
			}
			Debugger.Break(); // LOLLO this must never happen, check it
			await Logger.AddAsync("Attempting to remove folder, the db operation failed", Logger.FileErrorLogFilename).ConfigureAwait(false);

			return false;
		}