示例#1
0
        /// <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;
        }
示例#2
0
        /// <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;
            }
        }