示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
            }
        }