Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }