public void ExtractPackage(Hash packageId, string folder, bool validate) { if (!packageRegistry.TryGetPackage(packageId, out LocalPackageInfo package) || package.LockProvider.IsMarkedToDelete) { return; } // run var extractTask = Task.Run(new Action(() => localPackageManager.ExtractPackage(package, folder, validate: validate))); // create and register task for starting download var task = new LongRunningTask( validate ? $"Validating and extracting \"{package.Metadata.Name}\" {package.Id:s} to: {folder}" : $"Extracting \"{package.Metadata.Name}\" {package.Id:s} to: {folder}", extractTask, $"Success" ); // register tasks.AddTaskToQueue(task); }