void ParseVersions(CachePlatform cachePlatform, HubUnityVersion[] versions, List <VersionMetadata> results) { foreach (var version in versions) { var metadata = new VersionMetadata(); metadata.version = new UnityVersion(version.version); var platform = new VersionPlatformMetadata(); platform.packages = new PackageMetadata[version.modules.Length + 1]; platform.packages[0] = new PackageMetadata() { name = "Unity ", title = "Unity " + version.version, description = "Unity Editor", url = version.downloadUrl, install = true, mandatory = false, size = long.Parse(version.downloadSize), installedsize = long.Parse(version.installedSize), version = version.version, md5 = version.checksum }; var i = 1; foreach (var module in version.modules) { platform.packages[i++] = new PackageMetadata() { name = module.id, title = module.name, description = module.description, url = module.downloadUrl, install = module.selected, mandatory = false, size = long.Parse(module.downloadSize), installedsize = long.Parse(module.installedSize), version = version.version, md5 = module.checksum }; } Logger.LogDebug($"Found version {metadata.version} with {platform.packages.Length} packages"); metadata.SetPlatform(cachePlatform, platform); results.Add(metadata); } }
/// <summary> /// Set platform specific metadata by platform name. /// </summary> /// <param name="platform">Platform to set.</param> public void SetPlatform(CachePlatform platform, VersionPlatformMetadata metadata) { switch (platform) { case CachePlatform.macOS: mac = metadata; break; case CachePlatform.Windows: win = metadata; break; case CachePlatform.Linux: linux = metadata; break; default: throw new Exception("Invalid platform name: " + platform); } }