@@ -19,30 +19,30 @@ public GitHubApiService(ILogger<GitHubApiService>? logger, HttpClient httpClient
19
19
_launcherStorage = launcherStorage ;
20
20
}
21
21
22
- public async IAsyncEnumerable < T ? > DownloadJsonArrayAsync < T > ( string filename ,
23
- Uri ? uriRepository = null ) where T : class
24
- {
25
- if ( uriRepository == null ) {
26
- if ( _httpClient . BaseAddress == null ) {
27
- throw new NullReferenceException ( "No base address for HttpClient" ) ;
28
- }
29
- uriRepository = _httpClient . BaseAddress ;
30
- }
31
-
32
- GitHubRelease ? release ;
33
- if ( _launcherStorage == null ) {
34
- release = await GetLastReleaseAsync ( ) ;
35
- } else {
36
- release = _launcherStorage . GitHubRelease ;
37
- }
38
-
39
- var asset = release ? . Assets ? . FirstOrDefault ( n => n . Name . Equals ( filename ) ) ;
40
- await using var assetStream = await _httpClient . GetStreamAsync ( asset ? . BrowserDownloadUrl ) ;
41
- var contents = JsonSerializer . DeserializeAsyncEnumerable < T > ( assetStream ) ;
42
- await foreach ( var content in contents ) {
43
- yield return content ;
44
- }
45
- }
22
+ // public async IAsyncEnumerable<T?> DownloadJsonArrayAsync<T>(string filename,
23
+ // Uri? uriRepository = null) where T : class
24
+ // {
25
+ // if (uriRepository == null) {
26
+ // if (_httpClient.BaseAddress == null) {
27
+ // throw new NullReferenceException("No base address for HttpClient");
28
+ // }
29
+ // uriRepository = _httpClient.BaseAddress;
30
+ // }
31
+
32
+ // GitHubRelease? release;
33
+ // if (_launcherStorage == null) {
34
+ // release = await GetLastReleaseAsync();
35
+ // } else {
36
+ // release = _launcherStorage.GitHubRelease;
37
+ // }
38
+
39
+ // var asset = release?.Assets?.FirstOrDefault(n => n.Name.Equals(filename));
40
+ // await using var assetStream = await _httpClient.GetStreamAsync(asset?.BrowserDownloadUrl);
41
+ // var contents = JsonSerializer.DeserializeAsyncEnumerable<T>(assetStream);
42
+ // await foreach (var content in contents) {
43
+ // yield return content;
44
+ // }
45
+ // }
46
46
47
47
/// <summary>
48
48
/// Downloads a JSON file from a GitHub release and deserializes it into the specified object type
@@ -68,7 +68,7 @@ public GitHubApiService(ILogger<GitHubApiService>? logger, HttpClient httpClient
68
68
// Find the asset with the specified filename
69
69
var asset = release ? . Assets ? . FirstOrDefault ( n => n . Name . Equals ( filename ) ) ;
70
70
// Download the asset
71
- return await _httpClient . GetFromJsonAsync < T > ( asset ? . BrowserDownloadUrl ) ;
71
+ return await _httpClient . GetFromJsonAsync ( asset ? . BrowserDownloadUrl , typeof ( T ) , SourceGenerationContext . Default ) as T ;
72
72
}
73
73
74
74
public async Task < GitHubRelease ? > GetLastReleaseAsync ( Uri ? uriRepository = null ) {
@@ -79,7 +79,7 @@ public GitHubApiService(ILogger<GitHubApiService>? logger, HttpClient httpClient
79
79
uriRepository = _httpClient . BaseAddress ;
80
80
}
81
81
82
- return await _httpClient . GetFromJsonAsync < GitHubRelease > ( new Uri ( uriRepository , "releases/latest" ) ) ;
82
+ return await _httpClient . GetFromJsonAsync ( new Uri ( uriRepository , "releases/latest" ) , SourceGenerationContext . Default . GitHubRelease ) ;
83
83
}
84
84
85
85
public async Task < GitHubRelease ? > GetReleaseAsync ( string tag , Uri ? uriRepository = null ) {
@@ -90,7 +90,7 @@ public GitHubApiService(ILogger<GitHubApiService>? logger, HttpClient httpClient
90
90
uriRepository = _httpClient . BaseAddress ;
91
91
}
92
92
93
- var json = await _httpClient . GetFromJsonAsync < IList < GitHubRelease > > ( new Uri ( uriRepository , $ "releases") ) ;
93
+ var json = await _httpClient . GetFromJsonAsync ( new Uri ( uriRepository , $ "releases") , SourceGenerationContext . Default . GitHubReleaseArray ) ;
94
94
return json ? . FirstOrDefault ( t => t . TagName . Equals ( tag ) ) ;
95
95
}
96
96
@@ -103,7 +103,7 @@ public GitHubApiService(ILogger<GitHubApiService>? logger, HttpClient httpClient
103
103
}
104
104
105
105
await using var tagsStream = await _httpClient . GetStreamAsync ( new Uri ( uriRepository , "tags" ) ) ;
106
- var tags = JsonSerializer . Deserialize < IEnumerable < Tag > > ( tagsStream ) ;
106
+ var tags = JsonSerializer . Deserialize ( tagsStream , SourceGenerationContext . Default . IEnumerableTag ) ;
107
107
108
108
if ( tags is not null ) {
109
109
return tags ;
0 commit comments