Skip to content

Commit e73928e

Browse files
committed
test build without nugets (system.text.json and others) ref #170
1 parent 6fef27a commit e73928e

7 files changed

+251
-184
lines changed

Diff for: UnityLauncherPro/App.config

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<configuration>
33
<runtime>
4-
<AppContextSwitchOverrides value="Switch.System.Windows.DoNotScaleForDpiChanges=false"/>
4+
<AppContextSwitchOverrides value="Switch.System.Windows.DoNotScaleForDpiChanges=false" />
55
</runtime>
66
<configSections>
77
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
8-
<section name="UnityLauncherPro.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
8+
<section name="UnityLauncherPro.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
99
</sectionGroup>
1010
</configSections>
1111
<startup>
12-
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
12+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
1313
</startup>
1414
<userSettings>
1515
<UnityLauncherPro.Properties.Settings>
@@ -44,10 +44,10 @@
4444
<value>False</value>
4545
</setting>
4646
<setting name="preferredVersion" serializeAs="String">
47-
<value/>
47+
<value />
4848
</setting>
4949
<setting name="newProjectsRoot" serializeAs="String">
50-
<value/>
50+
<value />
5151
</setting>
5252
<setting name="askNameForQuickProject" serializeAs="String">
5353
<value>True</value>
@@ -62,7 +62,7 @@
6262
<value>False</value>
6363
</setting>
6464
<setting name="webglBuildPath" serializeAs="String">
65-
<value/>
65+
<value />
6666
</setting>
6767
<setting name="useCustomTheme" serializeAs="String">
6868
<value>False</value>
@@ -95,10 +95,10 @@
9595
<value>0</value>
9696
</setting>
9797
<setting name="templatePackagesFolder" serializeAs="String">
98-
<value/>
98+
<value />
9999
</setting>
100100
<setting name="newProjectPlatform" serializeAs="String">
101-
<value/>
101+
<value />
102102
</setting>
103103
<setting name="searchProjectPathAlso" serializeAs="String">
104104
<value>False</value>
@@ -107,7 +107,7 @@
107107
<value>False</value>
108108
</setting>
109109
<setting name="shortcutBatchFileFolder" serializeAs="String">
110-
<value/>
110+
<value />
111111
</setting>
112112
<setting name="rootFolders" serializeAs="Xml">
113113
<value>
@@ -127,7 +127,7 @@
127127
</setting>
128128
<setting name="projectPaths" serializeAs="Xml">
129129
<value>
130-
<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
130+
<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
131131
</value>
132132
</setting>
133133
<setting name="override40ProjectCount" serializeAs="String">

Diff for: UnityLauncherPro/Data/UnityVersion.cs

+39-18
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,56 @@
11
using System;
2-
using System.Text.Json;
3-
using System.Text.Json.Serialization;
2+
using System.Collections.Generic;
43

54
namespace UnityLauncherPro
65
{
76
public class UnityVersion
87
{
9-
[JsonPropertyName("version")]
108
public string Version { get; set; }
11-
[JsonPropertyName("stream")]
12-
[JsonConverter(typeof(UnityVersionStreamConverter))]
139
public UnityVersionStream Stream { get; set; }
14-
[JsonPropertyName("releaseDate")]
1510
public DateTime ReleaseDate { get; set; }
16-
}
17-
18-
public class UnityVersionStreamConverter : JsonConverter<UnityVersionStream>
19-
{
20-
public override UnityVersionStream Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
11+
12+
public static UnityVersion FromJson(string json)
2113
{
22-
string streamString = reader.GetString();
23-
if (Enum.TryParse<UnityVersionStream>(streamString, true, out var result))
14+
var values = ParseJsonToDictionary(json);
15+
16+
return new UnityVersion
2417
{
25-
return result;
18+
Version = values.ContainsKey("version") ? values["version"] : null,
19+
Stream = ParseStream(values.ContainsKey("stream") ? values["stream"] : null),
20+
ReleaseDate = DateTime.TryParse(values.ContainsKey("releaseDate") ? values["releaseDate"] : null, out var date)
21+
? date
22+
: default
23+
};
24+
}
25+
26+
public string ToJson()
27+
{
28+
return $"{{ \"version\": \"{Version}\", \"stream\": \"{Stream}\", \"releaseDate\": \"{ReleaseDate:yyyy-MM-ddTHH:mm:ss}\" }}";
29+
}
30+
31+
private static Dictionary<string, string> ParseJsonToDictionary(string json)
32+
{
33+
var result = new Dictionary<string, string>();
34+
json = json.Trim(new char[] { '{', '}', ' ' });
35+
var keyValuePairs = json.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
36+
37+
foreach (var pair in keyValuePairs)
38+
{
39+
var keyValue = pair.Split(new[] { ':' }, 2);
40+
if (keyValue.Length == 2)
41+
{
42+
var key = keyValue[0].Trim(new char[] { ' ', '"' });
43+
var value = keyValue[1].Trim(new char[] { ' ', '"' });
44+
result[key] = value;
45+
}
2646
}
27-
throw new JsonException($"Unable to convert \"{streamString}\" to UnityVersionStream");
47+
48+
return result;
2849
}
2950

30-
public override void Write(Utf8JsonWriter writer, UnityVersionStream value, JsonSerializerOptions options)
51+
private static UnityVersionStream ParseStream(string stream)
3152
{
32-
writer.WriteStringValue(value.ToString().ToUpper());
53+
return Enum.TryParse(stream, true, out UnityVersionStream result) ? result : UnityVersionStream.Tech;
3354
}
3455
}
35-
}
56+
}

Diff for: UnityLauncherPro/Data/UnityVersionResponse.cs

-5
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
11
using System.Collections.Generic;
2-
using System.Text.Json.Serialization;
32

43
namespace UnityLauncherPro
54
{
65
public class UnityVersionResponse
76
{
8-
[JsonPropertyName("offset")]
97
public int Offset { get; set; }
10-
[JsonPropertyName("limit")]
118
public int Limit { get; set; }
12-
[JsonPropertyName("total")]
139
public int Total { get; set; }
14-
[JsonPropertyName("results")]
1510
public List<UnityVersion> Results { get; set; }
1611
}
1712
}

Diff for: UnityLauncherPro/Data/UnityVersionStream.cs

+36
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
using System;
2+
using System.Collections.Generic;
3+
14
namespace UnityLauncherPro
25
{
36
public enum UnityVersionStream
@@ -7,4 +10,37 @@ public enum UnityVersionStream
710
LTS,
811
Tech
912
}
13+
14+
public class UnityVersionJSON
15+
{
16+
public string Version { get; set; }
17+
public DateTime ReleaseDate { get; set; }
18+
public UnityVersionStream Stream { get; set; }
19+
public List<Download> Downloads { get; set; }
20+
public string ShortRevision { get; set; }
21+
}
22+
23+
public class Download
24+
{
25+
public string Url { get; set; }
26+
public string Type { get; set; }
27+
public string Platform { get; set; }
28+
public string Architecture { get; set; }
29+
public DownloadSize DownloadSize { get; set; }
30+
public List<Module> Modules { get; set; }
31+
}
32+
33+
public class DownloadSize
34+
{
35+
public long Value { get; set; }
36+
public string Unit { get; set; }
37+
}
38+
39+
public class Module
40+
{
41+
public string Id { get; set; }
42+
public string Name { get; set; }
43+
public string Description { get; set; }
44+
public string Url { get; set; }
45+
}
1046
}

0 commit comments

Comments
 (0)