public async Task Execute(IAppxEditCommand command, CancellationToken cancellationToken = default)
        {
            switch (command)
            {
            case SetPackageIdentity setIdentity:
            {
                await new SetPackageIdentityExecutor(this.manifest).Execute(setIdentity, cancellationToken).ConfigureAwait(false);
                break;
            }

            case SetPackageProperties setPackageDisplayInformation:
            {
                await new SetPackagePropertiesExecutor(this.manifest).Execute(setPackageDisplayInformation, cancellationToken).ConfigureAwait(false);
                break;
            }

            case AddCapability addCapability:
            {
                await new AddCapabilityExecutor(this.manifest).Execute(addCapability, cancellationToken).ConfigureAwait(false);
                break;
            }

            case DeleteFile deleteFile:
            {
                await new DeleteFileExecutor(this.directoryInfo).Execute(deleteFile, cancellationToken).ConfigureAwait(false);
                break;
            }

            case AddFile replaceFile:
            {
                await new AddFileExecutor(this.directoryInfo).Execute(replaceFile, cancellationToken).ConfigureAwait(false);
                break;
            }

            case SetBuildMetaData addBuildMetaData:
            {
                await new SetBuildMetaDataExecutor(this.manifest).Execute(addBuildMetaData, cancellationToken).ConfigureAwait(false);
                break;
            }

            case DeleteRegistryKey deleteRegistryKey:
            {
                await new DeleteRegistryKeyExecutor(this.directoryInfo).Execute(deleteRegistryKey, cancellationToken).ConfigureAwait(false);
                break;
            }

            case SetRegistryKey setRegistryKey:
            {
                await new SetRegistryKeyExecutor(this.directoryInfo).Execute(setRegistryKey, cancellationToken).ConfigureAwait(false);
                break;
            }

            case SetRegistryValue setRegistryValue:
            {
                await new SetRegistryValueExecutor(this.directoryInfo).Execute(setRegistryValue, cancellationToken).ConfigureAwait(false);
                break;
            }

            case ImportLocalRegistryKey importLocalRegistryKey:
            {
                await new ImportLocalRegistryKeyExecutor(this.directoryInfo).Execute(importLocalRegistryKey, cancellationToken).ConfigureAwait(false);
                break;
            }

            case ImportRegistryFile importRegistryFile:
            {
                await new ImportRegistryFileExecutor(this.directoryInfo).Execute(importRegistryFile, cancellationToken).ConfigureAwait(false);
                break;
            }

            default:
                throw new NotSupportedException($"The command {command.GetType().Name} is not supported.");
            }
        }
 public Task Execute(IAppxEditCommand command, CancellationToken cancellationToken = default)
 {
     return(this.extractedEditor.Execute(command, cancellationToken));
 }