public static async Task <RiotVersion> GetInstalledVersion(string leagueDir) { var airInstalled = Directory.EnumerateDirectories(Path.Combine(leagueDir, AirPath)); var airVersions = from dir in airInstalled select Version.Parse(Path.GetFileName(dir)) into v orderby v descending select v; var gameInstalled = Directory.EnumerateDirectories(Path.Combine(leagueDir, GamePath)); var gameVersions = from dir in gameInstalled select Version.Parse(Path.GetFileName(dir)) into v orderby v descending select v; var slnInstalled = Directory.EnumerateDirectories(Path.Combine(leagueDir, SolutionPath)); var slnVersions = from dir in slnInstalled select Version.Parse(Path.GetFileName(dir)) into v orderby v descending select v; var ver = new RiotVersion(airVersions.FirstOrDefault(), gameVersions.FirstOrDefault(), slnVersions.FirstOrDefault()); await ver.GetManifest(); return(ver); }
public static async Task <RiotVersion> GetLatestVersion() { using (var web = new WebClient()) { var airList = await web.DownloadStringTaskAsync(Region.Current.ReleaseListing("projects", "lol_air_client")); var gameList = await web.DownloadStringTaskAsync(Region.Current.ReleaseListing("projects", "lol_game_client")); var solutionList = await web.DownloadStringTaskAsync(Region.Current.ReleaseListing("solutions", "lol_game_client_sln")); Version airVersion, gameVersion, solutionVersion; Version.TryParse(airList.Split('\n').FirstOrDefault(), out airVersion); Version.TryParse(gameList.Split('\n').FirstOrDefault(), out gameVersion); Version.TryParse(solutionList.Split('\n').FirstOrDefault(), out solutionVersion); var v = new RiotVersion(airVersion, gameVersion, solutionVersion); await v.GetManifest(); return(v); } }