public ConsoleHostFileConflictResolver(
            IPackageManagementEvents packageEvents,
            FileConflictAction?fileConflictAction)
        {
            this.packageEvents   = packageEvents;
            fileConflictResolver = new FileConflictResolver();

            if (fileConflictAction.HasValue)
            {
                conflictResolution = GetFileConflictResolution(fileConflictAction.Value);
            }
            packageEvents.ResolveFileConflict += ResolveFileConflict;
        }
        public FileConflictAction ResolveFileConflict(string message)
        {
            if (context.FileConflictResolution.HasValue)
            {
                return(context.FileConflictResolution.Value);
            }

            // This should be using the PowerShell console host instead of a separate GUI.
            FileConflictAction conflictAction = Runtime.RunInMainThread(() => {
                var conflictResolver = new FileConflictResolver();
                return(conflictResolver.ResolveFileConflict(message));
            }).WaitAndGetResult();

            if (conflictAction == FileConflictAction.IgnoreAll || conflictAction == FileConflictAction.OverwriteAll)
            {
                context.FileConflictResolution = conflictAction;
            }

            return(conflictAction);
        }