Ejemplo n.º 1
0
 public static void FinishedMaintenanceJobCanNotBeFinished(this MaintenanceJob job)
 {
     if (job.Status == "Completed")
     {
         throw new BusinessRuleViolationException($"An already finished job can not be finished.");
     }
 }
Ejemplo n.º 2
0
        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 });
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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 });
        }
Ejemplo n.º 6
0
        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 }));
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
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);
        }
Ejemplo n.º 9
0
        private void Handle(MaintenanceJobFinished e)
        {
            MaintenanceJob job = Jobs.FirstOrDefault(j => j.Id == e.JobId);

            job.Finish(e.StartTime, e.EndTime, e.Notes);
        }