public void GenerateTripResult(List <Trip> trips, List <TripValues> tripValues) { foreach (Trip trip in trips) { if (tripValues.Where(i => i.DriverName == trip.DriverName).Count() > 0) { TripValues existValues = tripValues.Where(i => i.DriverName == trip.DriverName).FirstOrDefault(); existValues.TotalTime += Helper.TimeInHours(trip.StartTime, trip.StopTime); existValues.TotalDistance += (int)Math.Round(trip.MilesDriven); existValues.DriverName = trip.DriverName; existValues.AverageSpeed = (int)Math.Round(Helper.CalculateAverageSpeed(existValues.TotalTime, existValues.TotalDistance)); } else { TripValues tripValue = new TripValues(); tripValue.DriverName = trip.DriverName; tripValue.TotalDistance = (int)Math.Round(trip.MilesDriven); tripValue.TotalTime = Helper.TimeInHours(trip.StartTime, trip.StopTime); tripValue.AverageSpeed = (int)Math.Round(Helper.CalculateAverageSpeed(tripValue.TotalTime, trip.MilesDriven)); if (ValidateTrip.CheckValidTrip(tripValues, tripValue)) { tripValues.Add(tripValue); } } } }
public static bool CheckValidTrip(List <TripValues> tripValues, TripValues tripValue) { if (tripValue.AverageSpeed > 5 || tripValue.AverageSpeed < 100) { return(true); } return(false); }