14 internal class WinGetPackageBuilder : WinGetObjectBuilder<WinGetPackage>
16 private string _name =
string.Empty;
17 private string _id =
string.Empty;
18 private string _versionString =
string.Empty;
19 private Version? _version =
null;
20 private string _availableVersionString =
string.Empty;
21 private Version? _availableVersion =
null;
22 private string _sourceName =
string.Empty;
23 private bool _hasShortenedId =
false;
28 public WinGetPackageBuilder()
39 public void AddName(
string name)
53 public void AddId(
string id)
55 _hasShortenedId = CheckShortenedValue(
id);
59#if NETCOREAPP3_1_OR_GREATER
62 _id =
id.Remove(
id.Length - 1);
77 public void AddVersion(
string version)
79 _versionString = version;
80 _version = VersionParser.Parse(version);
82 if (
string.IsNullOrWhiteSpace(_availableVersionString) || _availableVersion ==
null)
86 AddAvailableVersion(version);
96 public void AddVersion(Version version)
98 _versionString = version.ToString();
101 if (
string.IsNullOrWhiteSpace(_availableVersionString) || _availableVersion ==
null)
105 AddAvailableVersion(version);
115 public void AddAvailableVersion(
string availableVersion)
117 _availableVersionString = availableVersion;
118 _availableVersion = VersionParser.Parse(availableVersion);
127 public void AddAvailableVersion(Version availableVersion)
129 _availableVersionString = availableVersion.ToString();
130 _availableVersion = availableVersion;
139 public void AddSourceName(
string sourceName)
141 _sourceName = sourceName;
152 if (_version ==
null)
154 _version = VersionParser.Parse(_versionString);
157 if (_availableVersion ==
null)
159 _availableVersion = VersionParser.Parse(_availableVersionString);
162 return new WinGetPackage(_name, _id, _versionString, _version, _availableVersionString, _availableVersion, _sourceName, _hasShortenedId);
166 public override void Clear()
168 _name =
string.Empty;
170 _versionString =
string.Empty;
172 _availableVersionString =
string.Empty;
173 _availableVersion =
null;
174 _sourceName =
string.Empty;
175 _hasShortenedId =
false;
Represents a winget package.