Exemplo n.º 1
0
        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);
        }