11using Microsoft . Extensions . Logging ;
22using Newtonsoft . Json ;
33using System ;
4+ using System . Collections ;
45using System . Collections . Generic ;
56using System . Net ;
67using System . Net . Http ;
@@ -117,7 +118,7 @@ public class Response
117118 /// <summary>
118119 /// The release results.
119120 /// </summary>
120- public Release [ ] results ;
121+ public List < Release > results ;
121122
122123 // -------- Error fields --------
123124
@@ -184,7 +185,7 @@ public class Release
184185 /// <summary>
185186 /// The Third Party Notices of the Unity Release.
186187 /// </summary>
187- public ThirdPartyNotice [ ] thirdPartyNotices ;
188+ public List < ThirdPartyNotice > thirdPartyNotices ;
188189
189190 [ OnDeserialized ]
190191 internal void OnDeserializedMethod ( StreamingContext context )
@@ -429,7 +430,7 @@ public class Module : Download
429430 /// <summary>
430431 /// EULAs the user should accept before installing.
431432 /// </summary>
432- public Eula [ ] eula ;
433+ public List < Eula > eula ;
433434 /// <summary>
434435 /// Sub-Modules of this module.
435436 /// </summary>
@@ -653,30 +654,25 @@ public async Task<Response> Send(RequestParams request, CancellationToken cancel
653654 /// <param name="maxResults">Limit returned results to not make too many requests</param>
654655 /// <param name="cancellation">Cancellation token</param>
655656 /// <returns>The results returned from the API</returns>
656- public async Task < Release [ ] > LoadAll ( RequestParams request , int maxResults = 200 , CancellationToken cancellation = default )
657+ public async Task < IEnumerable < Release > > LoadAll ( RequestParams request , int maxResults = 200 , CancellationToken cancellation = default )
657658 {
658659 request . limit = 25 ;
659660
660661 int maxTotal = 0 , currentOffset = 0 ;
661- Release [ ] releases = null ;
662- Response response = null ;
662+ var releases = new List < Release > ( ) ;
663+ Response response ;
663664 do {
664665 response = await Send ( request , cancellation ) ;
665666 if ( ! response . IsSuccess ) {
666667 throw new Exception ( $ "Unity Release API request failed: { response . title } - { response . detail } ") ;
667668 }
668669
669- maxTotal = Math . Min ( response . total , maxResults ) ;
670- if ( releases == null ) {
671- releases = new Release [ maxTotal ] ;
672- }
673-
674- Array . Copy ( response . results , 0 , releases , currentOffset , response . results . Length ) ;
675- currentOffset += response . results . Length ;
670+ releases . AddRange ( response . results ) ;
671+ currentOffset += response . results . Count ;
676672
677- request . offset += response . results . Length ;
673+ request . offset += response . results . Count ;
678674
679- } while ( currentOffset < maxTotal && response . results . Length > 0 ) ;
675+ } while ( currentOffset < maxTotal && response . results . Count > 0 ) ;
680676
681677 return releases ;
682678 }
@@ -701,12 +697,12 @@ public async Task<IEnumerable<Release>> LoadLatest(RequestParams request, TimeSp
701697 response = await Send ( request , cancellation ) ;
702698 if ( ! response . IsSuccess ) {
703699 throw new Exception ( $ "Unity Release API request failed: { response . title } - { response . detail } ") ;
704- } else if ( response . results . Length == 0 ) {
700+ } else if ( response . results . Count == 0 ) {
705701 break ;
706702 }
707703
708704 releases . AddRange ( response . results ) ;
709- request . offset += response . results . Length ;
705+ request . offset += response . results . Count ;
710706
711707 var oldestReleaseDate = response . results [ ^ 1 ] . releaseDate ;
712708 var releasedSince = now - oldestReleaseDate ;
@@ -758,7 +754,7 @@ public async Task<Release> FindRelease(UnityVersion version, Platform platform,
758754 var result = await Send ( req , cancellation ) ;
759755 if ( ! result . IsSuccess ) {
760756 throw new Exception ( $ "Unity Release API request failed: { result . title } - { result . detail } ") ;
761- } else if ( result . results . Length == 0 ) {
757+ } else if ( result . results . Count == 0 ) {
762758 return null ;
763759 }
764760
0 commit comments