コード例 #1
0
        private static void Main(string[] args)
        {
            #region DI

            var collection = new ServiceCollection();
            collection.AddSingleton <IFileReader, FileReader>();
            collection.AddSingleton <IResultGenerator <Lap>, ResultGenerator>();
            collection.AddSingleton <IRepository <Lap>, Repository <Lap> >();
            collection.AddSingleton <IApplication, Application.Application>();

            var serviceProvider = collection.BuildServiceProvider();

            #endregion DI

            var service     = serviceProvider.GetService <IRepository <Lap> >();
            var application = serviceProvider.GetService <IApplication>();

            var race   = new Race(service.GetAll());
            var result = new RaceResult(race);

            Console.WriteLine(application.GetInitialMenu());

            var option = Console.ReadLine();

            switch (option)
            {
            case "1":
                result.GetResult();
                var raceResult = application.GetFinalResult(result.Result, result.Leavers);
                Console.WriteLine(raceResult);
                break;

            case "2":
                var bestLap = race.GetBestLap();
                Console.WriteLine(application.GetBestLap(bestLap));
                break;

            case "3":
                var bestLaps = race.GetBestLapFromEachRacer();
                Console.WriteLine(application.GetBestLapFromEachRacer(bestLaps));
                break;

            case "4":
                var averageSpeed = result.GetAverageSpeed();
                Console.WriteLine(application.GetAverageSpeedFromEachRacer(averageSpeed));
                break;

            case "5":
            default:
                var completedAfterFirst = result.GetCompletedTimeAfterFirst();
                Console.WriteLine(application.GetCompletedTimeAfterFirst(completedAfterFirst));
                break;
            }

            Console.ReadKey();
        }
コード例 #2
0
        public void GetAverageSpeed_When_Valid_Parameters()
        {
            var laps = new List <Lap>
            {
                new Lap("12:01:12", "1", "testPosition2", "1", "1:11.111", "2"),
                new Lap("12:01:12", "1", "testPosition2", "2", "1:11.111", "2"),
                new Lap("12:01:12", "1", "testPosition2", "3", "1:11.111", "2"),
                new Lap("12:01:12", "1", "testPosition2", "4", "1:11.111", "2"),
                new Lap("12:01:12", "2", "testPosition1", "1", "0:11.111", "1"),
                new Lap("12:01:12", "2", "testPosition1", "2", "0:11.111", "1"),
                new Lap("12:01:12", "2", "testPosition1", "3", "0:11.111", "1"),
                new Lap("12:01:12", "2", "testPosition1", "4", "0:11.111", "1")
            };
            var race       = new Race(laps);
            var raceResult = new RaceResult(race);
            var result     = raceResult.GetAverageSpeed();

            result[0].AverageSpeed.Should().Be(2);
            result[1].AverageSpeed.Should().Be(1);
        }