public void FinishRide(DateTime time) { if (Driver.Id == -1 || status != TaxiOrderStatus.InProgress) { throw new InvalidOperationException(); } status = TaxiOrderStatus.Finished; finishRideTime = time; }
public void StartRide(DateTime time) { if (Driver.Id == -1 || status != TaxiOrderStatus.WaitingCarArrival) { throw new InvalidOperationException(); } status = TaxiOrderStatus.InProgress; startRideTime = time; }
public void Cancel(DateTime time) { if (status == TaxiOrderStatus.InProgress) { throw new InvalidOperationException(); } status = TaxiOrderStatus.Canceled; cancelTime = time; }
public void UnassignDriver() { if (Driver.Id == -1 || status == TaxiOrderStatus.InProgress) { throw new InvalidOperationException(); } Driver = new Driver(-1, new PersonName(null, null), new Car()); status = TaxiOrderStatus.WaitingForDriver; }
public TaxiOrder(int id, PersonName clientName, Address startAddress, DateTime creationTime) : base(id) { ClientName = clientName; Start = startAddress; Destination = new Address(null, null); Driver = new Driver(-1, new PersonName(null, null), new Car()); this.creationTime = creationTime; status = TaxiOrderStatus.WaitingForDriver; }
public void FinishRide(DateTime finishRideTime) { if (Status != TaxiOrderStatus.InProgress) { throw new InvalidOperationException($"Недопустимая операция для статуса {Status}"); } Status = TaxiOrderStatus.Finished; TimeReport.Report(finishRideTime); }
public void StartRide(DateTime startRideTime) { if (Status != TaxiOrderStatus.WaitingCarArrival) { throw new InvalidOperationException($"Недопустимая операция для статуса {Status}"); } Status = TaxiOrderStatus.InProgress; TimeReport.Report(startRideTime); }
public void UnassignDriver() { if (Status != TaxiOrderStatus.WaitingCarArrival) { throw new InvalidOperationException($"Недопустимая операция для статуса {Status}"); } Driver = null; Status = TaxiOrderStatus.WaitingForDriver; }
public void AssignDriver(Driver driver, DateTime curTime) { if (Driver.Id != -1 || status != TaxiOrderStatus.WaitingForDriver) { throw new InvalidOperationException(); } Driver = driver; driverAssignmentTime = curTime; this.status = TaxiOrderStatus.WaitingCarArrival; }
public void Cancel(DateTime cancelTime) { switch (Status) { case TaxiOrderStatus.InProgress: case TaxiOrderStatus.Finished: throw new InvalidOperationException($"Недопустимая операция для статуса {Status}"); case TaxiOrderStatus.Canceled: throw new InvalidOperationException("Заказ уже отменен"); } Status = TaxiOrderStatus.Canceled; TimeReport.Report(cancelTime); }
public void AssignDriver(int driverId, DateTime driverAssignmentTime) { if (Status != TaxiOrderStatus.WaitingForDriver) { throw new InvalidOperationException($"Недопустимая операция для статуса {Status}"); } if (driverId == 15) { Driver = new Driver(driverId, new PersonName("Drive", "Driverson")); Car = new TaxiCar("Lada sedan", "Baklazhan", "A123BT 66"); } else { throw new Exception("Unknown driver id " + driverId); } Status = TaxiOrderStatus.WaitingCarArrival; TimeReport.Report(driverAssignmentTime); }