private async Task ExecuteInstallAsync(NuGetProject nuGetProject, PackageIdentity packageIdentity, Stream packageStream, HashSet<PackageIdentity> packageWithDirectoriesToBeDeleted,
            INuGetProjectContext nuGetProjectContext, CancellationToken token)
        {
            // TODO: MinClientVersion check should be performed in preview. Can easily avoid a lot of rollback
            MinClientVersionHandler.CheckMinClientVersion(packageStream, packageIdentity);

            packageWithDirectoriesToBeDeleted.Remove(packageIdentity);
            await nuGetProject.InstallPackageAsync(packageIdentity, packageStream, nuGetProjectContext, token);            

            // TODO: Consider using CancelEventArgs instead of a regular EventArgs??
            //if (packageOperationEventArgs.Cancel)
            //{
            //    return;
            //}
        }