/// <summary> /// Initializes a new instance of the <see cref="IJobResultsHandler"/> /// class. /// </summary> /// <param name="handler">The <see cref="IJobResultsHandler"/> loaded /// through reflection.</param> /// <exception cref="ArgumentNullException">handler is null.</exception> public LoadedHandler(IJobResultsHandler handler) { if (handler == null) { throw new ArgumentNullException("handler"); } Handler = handler; }
/// <summary> /// Adds a new job to the tracker. /// </summary> /// <param name="ticket">The <see cref="IJobTicket"/> to begin /// tracking.</param> /// <param name="handler">The <see cref="IJobResultsHandler"/> called /// when the job has finished executing.</param> public void Add(IJobTicket ticket, IJobResultsHandler handler) { JobViewModel vm = new JobViewModel(ticket); vm.Handler = handler; switch (ticket.State) { case JobState.InQueue: vm.JobStarted += _jobStarted; vm.JobFinished += _jobFinished; _safeViewModelAction(Pending.Add, vm); break; case JobState.Running: vm.JobStarted += _jobStarted; vm.JobFinished += _jobFinished; Current = vm; break; default: _safeViewModelAction(Finished.Add, vm); break; } }