public JsonResult <List <Build> > Get() { var builds = _teamCityService.GetAllBuilds(); return(Json(builds)); }
public void Run() { Log.Info("Polling started."); try { var builds = _tcService.GetAllBuilds(); if (_lastBuilds != null) { var a = _lastBuilds.OrderBy(x => x.FinishDate).ToList(); var b = builds.OrderBy(x => x.FinishDate).ToList(); Log.Info("Last builds is not null"); if (!a.SequenceEqual(b)) { for (var i = 0; i < a.Count; i++) { if (!a[i].Equals(b[i])) { Log.Debug("Item not equal"); Log.Debug($"{a[i].ProjectName} <--> {b[i].ProjectName}"); Log.Debug($"{a[i].ProjectId} <--> {b[i].ProjectId}"); Log.Debug($"{a[i].StepName} <--> {b[i].StepName}"); Log.Debug($"{a[i].Status} <--> {b[i].Status}"); Log.Debug("-----------------------------------"); } } Log.Info("Found changes in builds, posting to node"); _isSuccess = _nodeService.PostBuilds(builds); Log.Info("Post builds SUCCESS: " + _isSuccess); //_tcService.PutBuildsInCache(builds); } CheckForFailedBuilds(builds); } if (_lastBuilds == null && !_isSuccess) { Log.Info("Last push to node did not succeed, posting again"); ////PostLatestFailedBuild(); // Send builds to node _isSuccess = _nodeService.PostBuilds(builds); //_tcService.PutBuildsInCache(builds); Log.Info("Post builds SUCCESS: " + _isSuccess); } // Send latest build to node, builds.first() if (builds.Count > 0) { Log.Info("Posting latest build to node"); _nodeService.PostLatestBuild(builds.First()); } if (_isSuccess && builds.Count > 0) { Log.Info("Replace last builds"); _lastBuilds = builds; } } catch (Exception e) { Log.Error("TeamCity polling job failed. ", e); } Log.Info("Polling finished."); }