private static async Task InsertData(IBraaapRepository repo, Options options) { List <Rider> riders; using (new Swatch($"Riders {options.RiderCount} created")) { riders = Enumerable.Range(1, options.RiderCount).Select(x => repo.AddRider(new Rider { Name = $"Rider {x}", Number = x.ToString(), })).Select(x => x.Result).ToList(); } var sw = Stopwatch.StartNew(); using (new Swatch($"Sessions {options.SessionCount} created")) for (var sessionIndex = 0; sessionIndex < options.SessionCount; sessionIndex++) { var session = await repo.AddSession(new Session { Name = $"Session {sessionIndex}" }); for (var riderIndex = 0; riderIndex < riders.Count; riderIndex++) { var rider = riders[riderIndex]; for (var j = 0; j < options.CheckpointCount; j++) { await repo.AddCheckpoint(new Checkpoint(), session, rider); } await repo.AddRiderSessionResult(new RiderSessionResult { Position = int.Parse(rider.Number) }, session, rider); if (sw.ElapsedMilliseconds > options.ProgressInterval) { Console.WriteLine($"Inserted Sessions: {sessionIndex}, RiderResults: {riderIndex}"); sw.Restart(); } } } }
private static async Task ReadData(IBraaapRepository repo, Options options) { var sw = Stopwatch.StartNew(); using (new Swatch($"ReadData {options.ReadIterations} iterations")) { for (var i = 0; i < options.ReadIterations; i++) { for (var sessionIndex = 0; sessionIndex < options.SessionCount; sessionIndex++) { var session = await repo.GetSessionByName($"Session {sessionIndex}"); var results = await repo.GetSessionResults(session.SessionId); if (sw.ElapsedMilliseconds > options.ProgressInterval) { Console.WriteLine($"ReadData Iteration: {i}, Session: {sessionIndex}"); sw.Restart(); } } } } }