Example #1
0
        private static VehicleStatistics GetStatisticForVehicle(Vehicle vehicle)
        {
            var vehicleStatistics = new VehicleStatistics();

            int maxSpeed = vehicle.GetMaxSpeed();
            int probOfHeavyMalfunction = vehicle.GetProbOfHeavyMalfunction();
            int probOfLightMalfunction = vehicle.GetProbOfLightMalfunction();
            int repairmentLast         = vehicle.GetRepairmentLast();

            var timeInPerfectCondition = Convert.ToInt32(Race.Distance / maxSpeed);

            for (int i = 0; i < timeInPerfectCondition; i++)
            {
                if (DoesMalfunctionHappened(probOfHeavyMalfunction))
                {
                    vehicleStatistics.DoesHeavyMalfunctionsHappened = true;
                    break;
                }
                if (DoesMalfunctionHappened(probOfLightMalfunction))
                {
                    vehicleStatistics.FinishTime += repairmentLast;
                    vehicleStatistics.NumberOfLightMalfunctions++;
                }
                vehicleStatistics.FinishTime++;
                vehicleStatistics.Distance += maxSpeed;
            }

            return(vehicleStatistics);
        }
Example #2
0
 internal static void AddStatisticForVehicle(VehicleStatistics statistics)
 {
     using (IDbConnection cnn = new SQLiteConnection(SqliteDataAccess.LoadConnectionString()))
     {
         cnn.Execute("insert into VehicleStatistics (VehicleId, Distance, NumberOfLightMalfunctions, DoesHeavyMalfunctionsHappened, FinishTime) " +
                     "values (@VehicleId, @Distance, @NumberOfLightMalfunctions, @DoesHeavyMalfunctionsHappened, @FinishTime)", statistics);
     }
 }
Example #3
0
 public static VehicleStatisticsDto ToVehicleStatisticsDto(this VehicleStatistics vehicle)
 {
     return(new VehicleStatisticsDto
     {
         FinishTime = vehicle.FinishTime,
         Distance = vehicle.Distance,
         Status = vehicle.Status.ToString()
     });
 }
        public IHttpActionResult Get(int raceId, int vehicleId)
        {
            VehicleStatistics vehicle = _leaderboardService.GetVehicle(raceId, vehicleId);

            return(OkOrNotFound(vehicle));
        }