Пример #1
0
        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();
                        }
                    }
                }
        }
Пример #2
0
        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();
                        }
                    }
                }
            }
        }