Skip to content

Commit 610dc3e

Browse files
committed
Added the WinGetAdminSetting class
1 parent c72edeb commit 610dc3e

5 files changed

Lines changed: 98 additions & 63 deletions

File tree

src/WGet.NET/HelperClasses/ProcessOutputReader.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ private static WinGetData ReadDataForRange1(string[] output)
515515

516516
List<WinGetInfoEntry> links = ReadLinks(output);
517517

518-
return new WinGetData(version, directories, links, new());
518+
return new WinGetData(version, directories, links, new List<WinGetAdminSetting>());
519519
}
520520

521521
/// <summary>
@@ -553,7 +553,7 @@ private static WinGetData ReadDataForRange2(string[] output)
553553

554554
List<WinGetInfoEntry> links = ReadLinks(output);
555555

556-
return new WinGetData(version, directories, links, new List<WinGetInfoEntry>());
556+
return new WinGetData(version, directories, links, new List<WinGetAdminSetting>());
557557
}
558558

559559
/// <summary>
@@ -594,7 +594,7 @@ private static WinGetData ReadDataForRange3(string[] output)
594594
// Remove links area and admin settings header range from output
595595
output = ArrayManager.RemoveRange(output, 0, ArrayManager.GetEntryContains(output, "----") + 1);
596596

597-
List<WinGetInfoEntry> adminSetting = ReadAdminSettings(output);
597+
List<WinGetAdminSetting> adminSetting = ReadAdminSettings(output);
598598

599599
return new WinGetData(version, directories, links, adminSetting);
600600
}
@@ -629,7 +629,7 @@ private static WinGetData ReadDataForRange4(string[] output)
629629
// Remove links area and admin settings header range from output
630630
output = ArrayManager.RemoveRange(output, 0, ArrayManager.GetEntryContains(output, "----") + 1);
631631

632-
List<WinGetInfoEntry> adminSetting = ReadAdminSettings(output);
632+
List<WinGetAdminSetting> adminSetting = ReadAdminSettings(output);
633633

634634
return new WinGetData(version, directories, links, adminSetting);
635635
}
@@ -748,9 +748,9 @@ private static List<WinGetInfoEntry> ReadLinks(string[] output)
748748
return links;
749749
}
750750

751-
private static List<WinGetInfoEntry> ReadAdminSettings(string[] output)
751+
private static List<WinGetAdminSetting> ReadAdminSettings(string[] output)
752752
{
753-
List<WinGetInfoEntry> adminSetting = new();
753+
List<WinGetAdminSetting> adminSetting = new();
754754

755755
for (int i = 0; i < output.Length; i++)
756756
{
@@ -763,7 +763,7 @@ private static List<WinGetInfoEntry> ReadAdminSettings(string[] output)
763763

764764
if (settingsEntry.Length == 2)
765765
{
766-
adminSetting.Add(new WinGetInfoEntry(settingsEntry[0].Trim(), settingsEntry[1].Trim()));
766+
adminSetting.Add(new WinGetAdminSetting(settingsEntry[0].Trim(), settingsEntry[1].Trim()));
767767
}
768768
}
769769

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//--------------------------------------------------//
2+
// Created by basicx-StrgV //
3+
// https://github.com/basicx-StrgV/ //
4+
//--------------------------------------------------//
5+
namespace WGetNET
6+
{
7+
/// <summary>
8+
/// Represents a winget admin settings entry.
9+
/// </summary>
10+
public class WinGetAdminSetting: WinGetInfoEntry
11+
{
12+
/// <summary>
13+
/// Gets if the admin setting is enabled.
14+
/// </summary>
15+
public bool IsEnabled
16+
{
17+
get
18+
{
19+
return _content.ToUpper() switch
20+
{
21+
"ENABLED" => true,
22+
"DISABLED" => false,
23+
_ => false,
24+
};
25+
}
26+
}
27+
28+
/// <summary>
29+
/// Initializes a new instance of the <see cref="WGetNET.WinGetAdminSetting"/> class.
30+
/// </summary>
31+
/// <param name="name">The name of the settings entry.</param>
32+
/// <param name="content">The content of the settings entry.</param>
33+
internal WinGetAdminSetting(string name, string content): base(name, content)
34+
{
35+
// Handled by base
36+
}
37+
}
38+
}

src/WGet.NET/Models/WinGetData.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public List<WinGetInfoEntry> Links
5959
/// <summary>
6060
/// Gets a list of the winget admin setting states.
6161
/// </summary>
62-
public List<WinGetInfoEntry> AdminSetting
62+
public List<WinGetAdminSetting> AdminSetting
6363
{
6464
get
6565
{
@@ -89,15 +89,15 @@ internal static WinGetData Empty
8989
{
9090
get
9191
{
92-
return new WinGetData("", new List<WinGetInfoEntry>(), new List<WinGetInfoEntry>(), new List<WinGetInfoEntry>());
92+
return new WinGetData("", new List<WinGetInfoEntry>(), new List<WinGetInfoEntry>(), new List<WinGetAdminSetting>());
9393
}
9494
}
9595

9696
private readonly string _wingetVersionString;
9797
private readonly Version _wingetVersion;
9898
private readonly List<WinGetInfoEntry> _directories;
9999
private readonly List<WinGetInfoEntry> _links;
100-
private readonly List<WinGetInfoEntry> _adminSetting;
100+
private readonly List<WinGetAdminSetting> _adminSetting;
101101

102102
/// <summary>
103103
/// Initializes a new instance of the <see cref="WGetNET.WinGetData"/> class.
@@ -112,7 +112,7 @@ internal static WinGetData Empty
112112
/// <param name="adminSetting">
113113
/// <see cref="System.Collections.Generic.List{T}"/> of info entries containing the WinGet admin setting states.
114114
/// </param>
115-
internal WinGetData(string wingetVersion, List<WinGetInfoEntry> directories, List<WinGetInfoEntry> links, List<WinGetInfoEntry> adminSetting)
115+
internal WinGetData(string wingetVersion, List<WinGetInfoEntry> directories, List<WinGetInfoEntry> links, List<WinGetAdminSetting> adminSetting)
116116
{
117117
_wingetVersionString = wingetVersion;
118118
_wingetVersion = CreateVersionObject(wingetVersion);

src/WGet.NET/Models/WinGetInfoEntry.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ public bool HasShortenedContent
4242
}
4343
}
4444

45-
private readonly string _name;
46-
private readonly string _content;
47-
private readonly bool _hasShortenedContent;
45+
private protected readonly string _name;
46+
private protected readonly string _content;
47+
private protected readonly bool _hasShortenedContent;
4848

4949
/// <summary>
5050
/// Initializes a new instance of the <see cref="WGetNET.WinGetInfoEntry"/> class.

src/WGet.NET/XmlDocumentation/WGet.NET.xml

Lines changed: 46 additions & 49 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)