public IActionResult Runs() { var viewmodel = new AdminListViewModel(); var runs = _analyticsReader .Get() .Select(x => new RunAdminViewModel(x)); var jobs = _mapRenderer.GetJobs(); var results = _mapRenderer.GetResults(); foreach (var run in runs) { var job = jobs.FirstOrDefault(x => x.Worldname == run.Worldname); if (job != null) { run.HasPendingRenderJob = true; } var result = results.FirstOrDefault(x => x.Worldname == run.Worldname); if (result != null) { run.HasRenderedMap = true; } viewmodel.Runs.Add(run); } return(View(viewmodel)); }
public void Adjust(RunManuals manuals) { var analytics = _analyticsReader.Get(manuals.Worldname); analytics.Timings = applyManualInput(analytics.Timings, manuals); _analyticsWriter.Upsert(analytics); }
public int Prioritize(string worldname) { var data = _analytics.Get(worldname); var priority = 0; priority += outcomePriorities[data.Outcome]; priority += getDatePriority(data.World.CreatedOn); return(priority); }
private RunTiming getTimingForSection(Sections section) { var feature = _mapper.Map(section); var times = _timingsFinder.Get(feature); var fastest = times.OrderBy(x => x.Value).FirstOrDefault(); var run = fastest != null ? _analyticsReader.Get(fastest.Worldname) : null; return(new RunTiming(section, fastest, run)); }
public void Index() { var analytics = _reader.Get(); var index = _initialIndex + 1; foreach (var analytic in analytics.OrderBy(x => x.Timings.StartedOn)) { if (analytic.Outcome == Outcomes.Unknown || analytic.Outcome == Outcomes.Untouched) { continue; } analytic.Index = index; _writer.Upsert(analytic); index++; } }
public IEnumerable <RunAnalytics> GetAll() => _analyticsReader.Get();