WGet.NET 4.4.1
A WinGet wrapper library for .Net.
Loading...
Searching...
No Matches
WinGetInfoBuilder.cs
1//--------------------------------------------------//
2// Created by basicx-StrgV //
3// https://github.com/basicx-StrgV/ //
4//--------------------------------------------------//
5using System;
6using System.Collections.Generic;
9
10namespace WGetNET.Builder
11{
15 internal class WinGetInfoBuilder : WinGetObjectBuilder<WinGetInfo>
16 {
17 private string _versionString = string.Empty;
18 private Version? _version = null;
19 private List<WinGetDirectory> _directories = new();
20 private List<WinGetLink> _links = new();
21 private List<WinGetAdminSetting> _adminSettings = new();
22
26 public WinGetInfoBuilder()
27 {
28 // Provide empty constructor
29 }
30
37 public void AddVersion(string version)
38 {
39 _versionString = version;
40 _version = VersionParser.Parse(version);
41 }
42
49 public void AddVersion(Version version)
50 {
51 _version = version;
52 _versionString = version.ToString();
53 }
54
61 public void AddDirectories(List<WinGetDirectory> directories)
62 {
63 _directories.AddRange(directories);
64 }
65
72 public void AddDirectory(WinGetDirectory? directory)
73 {
74 if (directory != null)
75 {
76 _directories.Add(directory);
77 }
78 }
79
86 public void AddLinks(List<WinGetLink> links)
87 {
88 _links.AddRange(links);
89 }
90
97 public void AddLink(WinGetLink? link)
98 {
99 if (link != null)
100 {
101 _links.Add(link);
102 }
103 }
104
111 public void AddAdminOptions(List<WinGetAdminSetting> adminOptions)
112 {
113 _adminSettings.AddRange(adminOptions);
114 }
115
122 public void AddAdminOption(WinGetAdminSetting? adminOption)
123 {
124 if (adminOption != null)
125 {
126 _adminSettings.Add(adminOption);
127 }
128 }
129
136 public override WinGetInfo GetInstance()
137 {
138 if (_version == null)
139 {
140 _version = VersionParser.Parse(_versionString);
141 }
142
143 return new WinGetInfo(_versionString, _version, _directories, _links, _adminSettings);
144 }
145
147 public override void Clear()
148 {
149 _versionString = string.Empty;
150 _version = null;
151 _directories = new List<WinGetDirectory>();
152 _links = new List<WinGetLink>();
153 _adminSettings = new List<WinGetAdminSetting>();
154 }
155 }
156}
Represents a winget admin settings entry.
Represents a winget directory in the info set.
Represents winget related information.
Definition WinGetInfo.cs:15
Represents a winget link in the info set.
Definition WinGetLink.cs:14