Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -291,13 +291,14 @@ public async Task AddEditRemovePackageCatalog()
options.SourceUri = Constants.TestSourceUrl;
options.Name = Constants.TestSourceName;
options.TrustLevel = PackageCatalogTrustLevel.Trusted;
options.Explicit = true;

await this.AddAndValidatePackageCatalogAsync(options, AddPackageCatalogStatus.Ok);

// Edit
EditPackageCatalogOptions editOptions = this.TestFactory.CreateEditPackageCatalogOptions();
editOptions.Name = Constants.TestSourceName;
editOptions.Explicit = OptionalBoolean.False;
editOptions.Explicit = false;
this.EditAndValidatePackageCatalog(editOptions, EditPackageCatalogStatus.Ok);

// Remove
Expand Down Expand Up @@ -340,6 +341,7 @@ private PackageCatalogReference GetAndValidatePackageCatalog(AddPackageCatalogOp
Assert.IsNotNull(packageCatalog);
Assert.AreEqual(addPackageCatalogOptions.Name, packageCatalog.Info.Name);
Assert.AreEqual(addPackageCatalogOptions.SourceUri, packageCatalog.Info.Argument);
Assert.AreEqual(addPackageCatalogOptions.Explicit, packageCatalog.Info.Explicit);

return packageCatalog;
}
Expand Down Expand Up @@ -396,9 +398,9 @@ private void EditAndValidatePackageCatalog(EditPackageCatalogOptions editPackage

// Verify edits are correct.
var packageCatalog = this.packageManager.GetPackageCatalogByName(editPackageCatalogOptions.Name);
if (editPackageCatalogOptions.Explicit != OptionalBoolean.Unspecified)
if (editPackageCatalogOptions.Explicit != null)
{
Assert.AreEqual(packageCatalog.Info.Explicit, editPackageCatalogOptions.Explicit == OptionalBoolean.True);
Assert.AreEqual(packageCatalog.Info.Explicit, editPackageCatalogOptions.Explicit);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,9 +201,9 @@ namespace AppInstaller::Repository
// Contains information about edits to a source.
struct SourceEdit
{
SourceEdit(std::optional<bool> isExplicit);
SourceEdit() = default;

// The explicit property of a source.
// The Explicit property of a source.
std::optional<bool> Explicit;
};

Expand Down
2 changes: 0 additions & 2 deletions src/AppInstallerRepositoryCore/RepositorySource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -432,8 +432,6 @@ namespace AppInstaller::Repository
return CheckForWellKnownSourceMatch(sourceDetails.Name, sourceDetails.Arg, sourceDetails.Type);
}

SourceEdit::SourceEdit(std::optional<bool> isExplicit) : Explicit(isExplicit) {}

Source::Source() {}

Source::Source(std::string_view name)
Expand Down
33 changes: 0 additions & 33 deletions src/Microsoft.Management.Deployment/Converters.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -556,37 +556,4 @@ namespace winrt::Microsoft::Management::Deployment::implementation
default: return AppInstaller::Manifest::PlatformEnum::Unknown;
}
}

std::optional<bool> GetOptionalBoolean(winrt::Microsoft::Management::Deployment::OptionalBoolean optionalBoolean)
{
switch (optionalBoolean)
{
case OptionalBoolean::True:
return std::optional<bool> { true };
case OptionalBoolean::False:
return std::optional<bool> { false };
default:
return std::nullopt;
}
}

winrt::Microsoft::Management::Deployment::OptionalBoolean GetOptionalBoolean(std::optional<bool> optionalBoolean)
{
if (optionalBoolean.has_value())
{
if (optionalBoolean.value())
{
return OptionalBoolean::True;
}
else
{
return OptionalBoolean::False;
}
}
else
{
return OptionalBoolean::Unspecified;
}
}

}
2 changes: 0 additions & 2 deletions src/Microsoft.Management.Deployment/Converters.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ namespace winrt::Microsoft::Management::Deployment::implementation
winrt::Microsoft::Management::Deployment::RemovePackageCatalogStatus GetRemovePackageCatalogOperationStatus(winrt::hresult hresult);
winrt::Microsoft::Management::Deployment::EditPackageCatalogStatus GetEditPackageCatalogOperationStatus(winrt::hresult hresult);
::AppInstaller::Manifest::PlatformEnum GetPlatformEnum(winrt::Microsoft::Management::Deployment::WindowsPlatform value);
std::optional<bool> GetOptionalBoolean(winrt::Microsoft::Management::Deployment::OptionalBoolean optionalBoolean);
winrt::Microsoft::Management::Deployment::OptionalBoolean GetOptionalBoolean(std::optional<bool> optionalBoolean);

#define WINGET_GET_OPERATION_RESULT_STATUS(_installResultStatus_, _uninstallResultStatus_, _downloadResultStatus_, _repairResultStatus_) \
if constexpr (std::is_same_v<TStatus, winrt::Microsoft::Management::Deployment::InstallResultStatus>) \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,19 @@ namespace winrt::Microsoft::Management::Deployment::implementation
hstring EditPackageCatalogOptions::Name()
{
return hstring(m_name);
}
}

void EditPackageCatalogOptions::Name(hstring const& value)
{
m_name = value;
}
OptionalBoolean EditPackageCatalogOptions::Explicit()
}

Windows::Foundation::IReference<bool> EditPackageCatalogOptions::Explicit()
{
return m_explicit;
}
void EditPackageCatalogOptions::Explicit(OptionalBoolean const& value)
}

void EditPackageCatalogOptions::Explicit(Windows::Foundation::IReference<bool> value)
{
m_explicit = value;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
#pragma once
#include "EditPackageCatalogOptions.g.h"
#include "public/ComClsids.h"
#include <winget/ModuleCountBase.h>
#include <winget/ModuleCountBase.h>
#include <optional>

namespace winrt::Microsoft::Management::Deployment::implementation
{
Expand All @@ -15,13 +16,13 @@ namespace winrt::Microsoft::Management::Deployment::implementation
hstring Name();
void Name(hstring const& value);

OptionalBoolean Explicit();
void Explicit(OptionalBoolean const& value);
Windows::Foundation::IReference<bool> Explicit();
void Explicit(Windows::Foundation::IReference<bool> value);

#if !defined(INCLUDE_ONLY_INTERFACE_METHODS)
private:
hstring m_name = L"";
OptionalBoolean m_explicit = OptionalBoolean::Unspecified;
std::optional<bool> m_explicit;
#endif
};
}
Expand Down
3 changes: 2 additions & 1 deletion src/Microsoft.Management.Deployment/PackageManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1467,7 +1467,8 @@ namespace winrt::Microsoft::Management::Deployment::implementation
THROW_HR_IF(APPINSTALLER_CLI_ERROR_SOURCE_NAME_DOES_NOT_EXIST, !matchingSource.has_value());
::AppInstaller::Repository::Source sourceToEdit = ::AppInstaller::Repository::Source{ matchingSource.value().Name };

::AppInstaller::Repository::SourceEdit edits{ GetOptionalBoolean(options.Explicit())};
::AppInstaller::Repository::SourceEdit edits;
edits.Explicit = options.Explicit();
if (sourceToEdit.RequiresChanges(edits))
{
sourceToEdit.Edit(edits);
Expand Down
23 changes: 7 additions & 16 deletions src/Microsoft.Management.Deployment/PackageManager.idl
Original file line number Diff line number Diff line change
Expand Up @@ -1541,15 +1541,6 @@ namespace Microsoft.Management.Deployment
HRESULT ExtendedErrorCode { get; };
};

/// IMPLEMENTATION NOTE: OptionalBoolean
[contract(Microsoft.Management.Deployment.WindowsPackageManagerContract, 28)]
enum OptionalBoolean
{
Unspecified,
False,
True,
};

/// IMPLEMENTATION NOTE: EditPackageCatalogOptions
[contract(Microsoft.Management.Deployment.WindowsPackageManagerContract, 28)]
runtimeclass EditPackageCatalogOptions
Expand All @@ -1562,7 +1553,7 @@ namespace Microsoft.Management.Deployment
String Name;

/// Editing the Explicit property has three states: true, false, and not specified (no changes).
OptionalBoolean Explicit;
Windows.Foundation.IReference<Boolean> Explicit;
};

/// IMPLEMENTATION NOTE: RemovePackageCatalogStatus
Expand Down Expand Up @@ -1620,12 +1611,6 @@ namespace Microsoft.Management.Deployment
Windows.Foundation.IAsyncOperationWithProgress<RemovePackageCatalogResult, Double> RemovePackageCatalogAsync(RemovePackageCatalogOptions options);
}

[contract(Microsoft.Management.Deployment.WindowsPackageManagerContract, 28)]
{
/// Edit an existing Windows Package Catalog.
EditPackageCatalogResult EditPackageCatalog(EditPackageCatalogOptions options);
}

/// Install the specified package
Windows.Foundation.IAsyncOperationWithProgress<InstallResult, InstallProgress> InstallPackageAsync(CatalogPackage package, InstallOptions options);

Expand Down Expand Up @@ -1667,6 +1652,12 @@ namespace Microsoft.Management.Deployment
// The version of the Windows Package Manager that is running.
String Version{ get; };
}

[contract(Microsoft.Management.Deployment.WindowsPackageManagerContract, 28)]
{
/// Edit an existing Windows Package Catalog.
EditPackageCatalogResult EditPackageCatalog(EditPackageCatalogOptions options);
}
}

/// Global settings for PackageManager operations.
Expand Down