public void DeactivateTripAndUpdateStats(string tripID, Status status, double?price = null, double?distance = null) { if (!activeTrips.ContainsKey(tripID)) { return; } Logger.Log("Deactivating trip " + tripID + " from " + name); activeTrips.Remove(tripID); switch (status) { case Status.Complete: { completes++; fare += (double)price; this.distance += (double)distance; break; } case Status.Cancelled: cancels++; break; case Status.Rejected: rejects++; break; } if (garbageCleanup != null) { garbageCleanup.Add(tripID); } }