public GetTeamCityProjectDetailsResponse Get(GetTeamCityProjectDetails request) { GetProjectResponse teamCityResponse = null; try { teamCityResponse = TeamCityClient.GetProject(new GetProject { Locator = "id:" + request.ProjectId }); } catch (WebServiceException e) { if (e.IsAny400()) { throw HttpError.NotFound("Project not found"); } } if (teamCityResponse == null) { throw new HttpError(HttpStatusCode.InternalServerError, "Invalid response from TeamCity"); } GetBuildResponse build = null; try { build = TeamCityClient.GetBuild(new GetBuild { BuildLocator = "project:id:" + request.ProjectId }); } catch (WebException e) { if (!e.HasStatus(HttpStatusCode.BadRequest)) { throw; } } catch (WebServiceException wse) { if (!wse.IsAny400()) { throw; } } build = build ?? new GetBuildResponse(); var response = new GetTeamCityProjectDetailsResponse { ProjectName = teamCityResponse.Name, ProjectId = teamCityResponse.Id, BuildNumber = build.Number, BuildState = build.State, BuildStatus = build.StatusText }; return(response); }
protected override void ProcessRecord() { if (Regions?.Count > 0 && AllRegions) { throw new ArgumentException("Exactly one of Regions, AllRegions should be specified."); } if ((Regions == null || Regions.Count == 0) && !AllRegions) { throw new ArgumentException("Exactly one of Regions, AllRegions should be specified."); } string buildIdString = new NewPFMultiplayerServer { ProductionEnvironmentUrl = ProductionEnvironmentUrl }.GetBuildId(BuildName, BuildId); HashSet <AzureRegion> regionsList = new HashSet <AzureRegion>(); if (AllRegions) { GetBuildResponse response = Instance.GetBuildAsync(new GetBuildRequest() { BuildId = buildIdString }).Result.Result; response.RegionConfigurations.ForEach(x => regionsList.Add(x.Region.Value)); } else { Regions.ForEach(x => regionsList.Add(x)); } List <MultiplayerServerSummary> serverSummaries = new List <MultiplayerServerSummary>(); foreach (AzureRegion region in regionsList) { serverSummaries.AddRange(GetMultiplayerServers(buildIdString, region)); } WriteObject(serverSummaries); }