public void Execute(AppointmentCompleted @event) { Printer.Print(ConsoleColor.Magenta); var appointmentRepository = new MyRepository <Appointment>(); var appointment = appointmentRepository.Fetch(@event.AppointmentId); var appointmentsOfJob = new MyRepository <Appointment>().FetchAll().Where(a => a.JobId == appointment.JobId); if (appointmentsOfJob.All(a => a.IsCompleted())) { var jobRepository = new MyRepository <Job>(); var job = jobRepository.Fetch(appointment.JobId); job.Complete(); } //Printer.Print("Job marked as in progress", ConsoleColor.Magenta); }
public void Handle(AppointmentCompleted @event) { Status = Status.Completed; Comments = @event.Comments; }