private void Handle(MaintenanceJobFinished e) { MaintenanceJob job = Jobs.FirstOrDefault(j => j.Id == e.JobId); Timeslot actualTimeslot = Timeslot.Create(e.StartTime, e.EndTime); job.Finish(actualTimeslot, e.Notes); }
private void Handle(MaintenanceJobPlanned e) { MaintenanceJob job = new MaintenanceJob(); Customer customer = new Customer(e.CustomerInfo.Id, e.CustomerInfo.Name, e.CustomerInfo.TelephoneNumber); LicenseNumber licenseNumber = LicenseNumber.Create(e.VehicleInfo.LicenseNumber); Vehicle vehicle = new Vehicle(licenseNumber, e.VehicleInfo.Brand, e.VehicleInfo.Type, customer.Id); Timeslot plannedTimeslot = Timeslot.Create(e.StartTime, e.EndTime); job.Plan(e.JobId, plannedTimeslot, vehicle, customer, e.Description); Jobs.Add(job); }
public void FinishMaintenanceJob(FinishMaintenanceJob command) { // find job MaintenanceJob job = Jobs.FirstOrDefault(j => j.Id == command.JobId); if (job == null) { throw new MaintenanceJobNotFoundException($"Maintenance job with id {command.JobId} found."); } // check business rules job.FinishedMaintenanceJobCanNotBeFinished(); // handle event MaintenanceJobFinished e = command.MapToMaintenanceJobFinished(); RaiseEvent(e); }