public TfsBuildResults Load() { var builds = SettingsManager.GetTfsBuilds(); var connection = new VssConnection(new Uri(AppSettings.TfsAddress), new VssClientCredentials(true)); var client = connection.GetClient <BuildHttpClient>(); //var buildDefinisions = client.GetDefinitionsAsync(project: "sequoia").GetAwaiter().GetResult(); var buildResults = client.GetBuildsAsync(AppSettings.TfsProject).GetAwaiter().GetResult(); var result = new TfsBuildResults { Date = DateTime.Now }; foreach (var build in builds) { //var tfsbuild = buildDefinisions.FirstOrDefault(x => x.Name == build.Name); var tfsbuildResult = buildResults.OrderBy(x => x.BuildNumber).FirstOrDefault(x => x.Definition.Name == build.Name); if (tfsbuildResult != null) { result.Results.Add(new TfsBuildStatus { Name = build.Name, Owner = build.Owner, Status = tfsbuildResult.Result?.ToString() ?? tfsbuildResult.Status?.ToString() ?? "Unknown" }); } } _cacheManager.ReleaseTfs(); _cacheManager.Store(result); return(result); }
public void Store(TfsBuildResults results) { ObjectCache cache = MemoryCache.Default; CacheItemPolicy policy = new CacheItemPolicy { AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddDays(1)) }; cache.Set(CacheKeyTfs, results, policy); }
public static TfsBuildResults Filter(this TfsBuildResults results, string owner = null, string build = null) { try { if (results != null && results.Results != null) { var filteredResults = results.Results.Where( x => x != null && (x.Owner == owner || string.IsNullOrWhiteSpace(owner)) && (x.Name == build || string.IsNullOrWhiteSpace(build))) .ToList(); return(new TfsBuildResults { Date = results?.Date ?? DateTime.Now, Results = filteredResults }); } return(results); } catch { return(null); } }