public List<ProjectInformationDto> GetProjectInfos(ProviderConfigElement providerInfo) { return _buildServer.GetAllProjects() .Where(f => f.Group.Contains(providerInfo.GroupMask)) .Select(x => new ProjectInformationDto { Name = x.Name, Status = ParseFBStatus(x.Status) }).ToList(); }
public TeamCityBuildDto GetBuildInfo(ProviderConfigElement providerInfo, TeamCityBuildTypeDto buildTypeDto) { string queryUrl = string.Format(queryBuildInfoUrlFormat, providerInfo.Url, buildTypeDto.Url); var doc = ProcessWebRequest(providerInfo, queryUrl); var status = (string)doc.Elements("build").First().Attribute("status"); var finishedDate = doc.Root.Elements("finishDate").FirstOrDefault() != null ? doc.Root.Elements("finishDate").First().Value : null; return new TeamCityBuildDto { FinishDate = finishedDate, Status = status }; }
public List<ProjectInformationDto> GetProjectInfos(ProviderConfigElement providerInfo) { ITeamCityInfoService teamCityInfoService = new TeamCityInfoService(); var projectGroups = teamCityInfoService.GetFilteredProjectGroup(providerInfo); var result = new List<ProjectInformationDto>(); foreach (var teamCityProjectGroupDto in projectGroups) { var buildTypes = teamCityInfoService.GetFilteredBuildTypes(providerInfo, teamCityProjectGroupDto); var builds = buildTypes.Select(teamCityBuildTypeDto => teamCityInfoService.GetBuildInfo(providerInfo, teamCityBuildTypeDto)).ToList(); result.AddRange((from teamCityBuildDto in builds select new ProjectInformationDto { Name = "Yo", Status = teamCityBuildDto.GetBuildStatus() }).ToList()); } return result; }
private static XDocument ProcessWebRequest(ProviderConfigElement providerInfo, string queryUrl) { var queryUri = new Uri(queryUrl); var webRequest = (HttpWebRequest)WebRequest.Create(queryUrl); var cred = new NetworkCredential(providerInfo.User, providerInfo.Password); var cache = new CredentialCache { { queryUri, "Basic", cred } }; webRequest.Credentials = cache; var webResponse = (HttpWebResponse)webRequest.GetResponse(); var stream = webResponse.GetResponseStream(); var xmlDoc = new XmlDocument(); if (stream != null) { xmlDoc.Load(stream); } var doc = XDocument.Parse(xmlDoc.OuterXml); return doc; }
public IEnumerable<TeamCityProjectGroupDto> GetFilteredProjectGroup(ProviderConfigElement providerInfo) { string queryUrl = string.Format(queryProjectsUrlFormat, providerInfo.Url); var doc = ProcessWebRequest(providerInfo, queryUrl); var projectGroups = (from project in doc.Root.Elements("project") where ((string)project.Attribute("name")).Contains(providerInfo.GroupMask) select new TeamCityProjectGroupDto { Name = (string)project.Attribute("name"), Url = (string)project.Attribute("href") }); return projectGroups; }
public IEnumerable<TeamCityBuildTypeDto> GetFilteredBuildTypes(ProviderConfigElement providerInfo, TeamCityProjectGroupDto projectGroupDto) { string queryUrl = string.Format(queryBuildTypesUrlFormat, providerInfo.Url, projectGroupDto.Url); var doc = ProcessWebRequest(providerInfo, queryUrl); IEnumerable<TeamCityBuildTypeDto> buildTypes; if (providerInfo.Projects.Count == 0) { buildTypes = (from buildType in doc.Root.Elements("buildType") select new TeamCityBuildTypeDto { Name = (string) buildType.Attribute("name"), Url = (string) buildType.Attribute("href") }); } else { List<string> projectNames = providerInfo.Projects.Cast<ProjectConfigElement>().Select(x => x.Name).ToList(); buildTypes = (from buildType in doc.Root.Elements("buildTypes").First().Elements("buildType") where projectNames.Contains((string)buildType.Attribute("name")) select new TeamCityBuildTypeDto { Name = (string)buildType.Attribute("name"), Url = (string)buildType.Attribute("href") }); } return buildTypes; }