public static void FinishedMaintenanceJobCanNotBeFinished(this MaintenanceJob job) { if (job.Status == "Completed") { throw new BusinessRuleViolationException($"An already finished job can not be finished."); } }
private IEnumerable <Event> Handle(MaintenanceJobFinished e) { MaintenanceJob job = Jobs.FirstOrDefault(j => j.Id == e.JobId); job.Finish(e.StartTime, e.EndTime, e.Notes); return(new Event[] { e }); }
private void Handle(MaintenanceJobUpdated e) { MaintenanceJob job = Jobs.FirstOrDefault(j => j.Id == e.JobId); Customer customer = new Customer(e.CustomerInfo.Id, e.CustomerInfo.Name, e.CustomerInfo.TelephoneNumber); Vehicle vehicle = new Vehicle(e.VehicleInfo.LicenseNumber, e.VehicleInfo.Brand, e.VehicleInfo.Type, customer.Id); job.Update(e.StartTime, e.EndTime, vehicle, customer, e.Description); }
private void Handle(MaintenanceJobPlanned e) { MaintenanceJob job = new MaintenanceJob(); Customer customer = new Customer(e.CustomerInfo.Id, e.CustomerInfo.Name, e.CustomerInfo.TelephoneNumber); Vehicle vehicle = new Vehicle(e.VehicleInfo.LicenseNumber, e.VehicleInfo.Brand, e.VehicleInfo.Type, customer.Id); job.Plan(e.JobId, e.StartTime, e.EndTime, vehicle, customer, e.Description); Jobs.Add(job); }
private IEnumerable <Event> Handle(MaintenanceJobPlanned e) { MaintenanceJob job = new MaintenanceJob(); Customer customer = new Customer(e.CustomerInfo.Id, e.CustomerInfo.Nombre, e.CustomerInfo.Telefono); Vehicle vehicle = new Vehicle(e.VehicleInfo.Matricula, e.VehicleInfo.Marca, e.VehicleInfo.Modelo, customer.CustomerId); job.Plan(e.JobId, e.StartTime, e.EndTime, vehicle, customer, e.Description); Jobs.Add(job); return(new Event[] { e }); }
private IEnumerable <Event> Handle(MaintenanceJobPlanned e) { MaintenanceJob job = new MaintenanceJob(); Customer customer = new Customer(e.CustomerInfo.Id, e.CustomerInfo.Name, e.CustomerInfo.TelephoneNumber); Vehicle vehicle = new Vehicle(e.VehicleInfo.LicenseNumber, e.VehicleInfo.Brand, e.VehicleInfo.Type, customer.CustomerId); job.Plan(e.JobId, e.StartTime, e.EndTime, vehicle, customer, e.Description); Jobs.Add(job); return(new List <Event>(new Event[] { e })); }
public IEnumerable <Event> 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."); } // handle event MaintenanceJobFinished e = Mapper.Map <MaintenanceJobFinished>(command); return(HandleEvent(e)); }
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); }
private void Handle(MaintenanceJobFinished e) { MaintenanceJob job = Jobs.FirstOrDefault(j => j.Id == e.JobId); job.Finish(e.StartTime, e.EndTime, e.Notes); }