14 internal class WinGetPinnedPackageBuilder : WinGetObjectBuilder<WinGetPinnedPackage>
16 private string _pinTypeString =
string.Empty;
17 private string _pinnedVersionString =
string.Empty;
20 private string _name =
string.Empty;
21 private string _id =
string.Empty;
22 private string _versionString =
string.Empty;
23 private Version? _version =
null;
24 private string _availableVersionString =
string.Empty;
25 private Version? _availableVersion =
null;
26 private string _sourceName =
string.Empty;
27 private bool _hasShortenedId =
false;
32 public WinGetPinnedPackageBuilder()
41 public void AddPinType(
string pinType)
43 _pinTypeString = pinType;
45 _pinType = _pinTypeString.ToUpper()
switch
61 public void AddPinnedVersion(
string pinnedVersion)
63 _pinnedVersionString = pinnedVersion;
72 public void AddName(
string name)
86 public void AddId(
string id)
88 _hasShortenedId = CheckShortenedValue(
id);
92#if NETCOREAPP3_1_OR_GREATER
95 _id =
id.Remove(
id.Length - 1);
110 public void AddVersion(
string version)
112 _versionString = version;
113 _version = VersionParser.Parse(version);
115 if (
string.IsNullOrWhiteSpace(_availableVersionString) || _availableVersion ==
null)
119 AddAvailableVersion(version);
122 if (
string.IsNullOrWhiteSpace(_pinnedVersionString))
126 AddPinnedVersion(version);
136 public void AddVersion(Version version)
138 _versionString = version.ToString();
141 if (
string.IsNullOrWhiteSpace(_availableVersionString) || _availableVersion ==
null)
145 AddAvailableVersion(version);
148 if (
string.IsNullOrWhiteSpace(_pinnedVersionString))
152 AddPinnedVersion(version.ToString());
162 public void AddAvailableVersion(
string availableVersion)
164 _availableVersionString = availableVersion;
165 _availableVersion = VersionParser.Parse(availableVersion);
174 public void AddAvailableVersion(Version availableVersion)
176 _availableVersionString = availableVersion.ToString();
177 _availableVersion = availableVersion;
186 public void AddSourceName(
string sourceName)
188 _sourceName = sourceName;
199 if (_version ==
null)
201 _version = VersionParser.Parse(_versionString);
204 if (_availableVersion ==
null)
206 _availableVersion = VersionParser.Parse(_availableVersionString);
212 _pinnedVersionString,
217 _availableVersionString,
224 public override void Clear()
226 _name =
string.Empty;
228 _versionString =
string.Empty;
230 _availableVersionString =
string.Empty;
231 _availableVersion =
null;
232 _sourceName =
string.Empty;
233 _hasShortenedId =
false;
PinType
Enum of winget pin types.
Represents a winget pinned package.