public void LoadProjects() { this.Projects.Clear(); foreach (string project in Directory.EnumerateDirectories(this.Folder + "/RADS/projects")) { DirectoryInfo dirInfo = new DirectoryInfo(project); string projectFolder = String.Format("{0}/RADS/projects/{1}", this.Folder, dirInfo.Name); if (Directory.Exists(projectFolder + "/releases")) { List <string> releases = Directory.EnumerateDirectories(projectFolder + "/releases").Select(x => { return(new DirectoryInfo(x).Name); }).Where(x => IsReleaseVersion(x)).ToList(); if (releases.Count() > 0) { try { LeagueProject newProject = new LeagueProject(this, dirInfo.Name, releases); this.Projects.Add(newProject); } catch (LeagueProject.NoValidReleaseException) { } } } } if (this.Projects.Count == 0) { throw new NoValidProjectException(); } }
public LeagueProjectRelease(LeagueProject project, string version) { this.Project = project; this.Version = version; this.VersionValue = LeagueInstallation.GetReleaseValue(version); string manifestPath = this.GetFolder() + "/releasemanifest"; if (File.Exists(manifestPath)) { this.GameManifest = new ReleaseManifest(manifestPath); } else { throw new ReleaseManifestNotFoundException(); } }
private LeagueProjectRelease GetProjectLatestRelease(string projectName) { LeagueProject foundProject = Installation.GetProject(projectName); if (foundProject == null) { throw new ProjectNotFoundException(); } LeagueProjectRelease foundProjectRelease = foundProject.GetLatestRelease(); if (foundProjectRelease == null) { throw new ProjectReleaseNotFoundException(); } return(foundProjectRelease); }