private void AddBuilds(ref Project project) { var count = (int)buildTypesJson.count; for (int i = 0; i < count; i++) { var buildTypeJson = buildTypesJson.buildType[i]; if (buildTypeJson.projectId != project.Id) { continue; } var build = new Build(); build.Id = buildTypeJson.id; build.Name = buildTypeJson.name; var url = string.Format(buildStatusUrl, build.Id); var buildStatusJsonString = RequestHelper.GetJson(url); buildStatusJson = JsonConvert.DeserializeObject<dynamic>(buildStatusJsonString ?? string.Empty); build.Branch = (buildStatusJson != null) ? (buildStatusJson.branchName ?? "default") : "unknown"; build.Status = GetBuildStatusForRunningBuild(build.Id); if (build.Status == BuildStatus.Running) { UpdateBuildStatusFromRunningBuildJson(build.Id); } build.UpdatedBy = GetUpdatedBy(); build.LastRunText = GetLastRunText(); build.IsQueued = IsBuildQueued(build.Id); build.StatusDescription = (string)buildStatusJson.statusText; if (build.Status == BuildStatus.Running) { var result = GetRunningBuildBranchAndProgress(build.Id); build.Branch = result[0]; build.Progress = result[1]; } else { build.Progress = string.Empty; } project.Builds.Add(build); } }
private void AddBuilds(ref Project project, Group group) { foreach (var job in group.Jobs) { var buildTypeJson = GetJsonBuildTypeById(job.Id); var build = new Build(); build.Id = buildTypeJson.id; build.Name = job.Text ?? buildTypeJson.name; var url = string.Format(buildStatusUrl, build.Id); var buildStatusJsonString = RequestHelper.GetJson(url); buildStatusJson = JsonConvert.DeserializeObject<dynamic>(buildStatusJsonString ?? string.Empty); build.Branch = buildStatusJson.branchName ?? "default"; build.Status = GetBuildStatusForRunningBuild(build.Id); if (build.Status == BuildStatus.Running) { UpdateBuildStatusFromRunningBuildJson(build.Id); } if (build.Status == BuildStatus.Failure) { if (buildStatusJson.testOccurrences != null) build.FailedTests = buildStatusJson.testOccurrences.failed ?? 0; } build.UpdatedBy = GetUpdatedBy(); build.LastRunText = GetLastRunText(); build.IsQueued = IsBuildQueued(build.Id); if (build.Status == BuildStatus.Running) { var result = GetRunningBuildBranchAndProgress(build.Id); build.Branch = result[0]; build.Progress = result[1]; } else { build.Progress = string.Empty; } project.Builds.Add(build); } }