public TfsDashboardSummary[] Get() { TfsDashboardSummary[] result; if (TryGetCache(out result)) { return(result); } lock (_lock) { if (TryGetCache(out result)) { return(result); } var watch = Stopwatch.StartNew(); var settings = TfsDashboardSettingsLoader.Load().ToArray(); result = new TfsDashboardSummary[settings.Length]; Parallel.ForEach(settings, (setting, state, idx) => { var manager = new TfsManager(setting); var summary = manager.CreateSummary(); summary.Name = setting.Name; result[idx] = summary; }); _cache = new Tuple <DateTime, TfsDashboardSummary[]>(DateTime.Now, result); Trace.WriteLine("TfsDashboardSummary Get: " + watch.Elapsed); return(result); } }
public ActionResult Index(string username) { if (string.IsNullOrWhiteSpace(username)) { return(null); } try { var settings = TfsDashboardSettingsLoader.Load(); var manager = new TfsManager(settings.First()); var img = manager.GetImage(username); return(File(img, "image")); } catch { return(HttpNotFound()); } }