private void writeSection(TimingAnalytics timings, RunImport run, Sections section, MetaFeatures feature) { var timing = timings.Events.FirstOrDefault(x => x.Section == section); if (timing != null) { var meta = new RunMeta <int>(run.Worldname, timing.Start, feature, (int)timing.Time.TotalMilliseconds); _writer.Upsert(meta); } }
public void Upsert(RunMeta <int> meta) { if (Exists(meta)) { update(meta); } else { insert(meta); } }
private void extractRuntime(TimingAnalytics analytics) { var runtime = analytics.RunTime; var meta = new RunMeta <int>( analytics.Worldname, analytics.StartedOn, MetaFeatures.Runtime, (int)runtime.TotalMilliseconds); _runtimeWriter.Upsert(meta); }
private void insert(RunMeta <int> meta) { switch (meta.Feature) { case MetaFeatures.BlazeRod: { _blazeCollection.Insert(meta); break; } case MetaFeatures.Fortress: { _fortressCollection.Insert(meta); break; } case MetaFeatures.Nether: { _netherCollection.Insert(meta); break; } case MetaFeatures.Search: { _searchCollection.Insert(meta); break; } case MetaFeatures.Spawn: { _spawnCollection.Insert(meta); break; } case MetaFeatures.Stronghold: { _strongholdCollection.Insert(meta); break; } case MetaFeatures.TheEnd: { _endCollection.Insert(meta); break; } default: { throw new Exception($"Feature {meta.Feature} now allowed."); } } }
public Outcomes Analyze(RunImport run) { var outcome = _component.Analyze(run); var meta = new RunMeta <Outcomes>( run.Worldname, run.World.CreatedOn, MetaFeatures.Outcome, outcome); _writer.Upsert(meta); return(outcome); }
public bool Exists(RunMeta <int> meta) => Exists(meta.Worldname, meta.Feature);
public RunTiming(Sections section, RunMeta <int> timing, RunAnalytics run) { Section = section; Timing = timing; Run = run; }