BaseJob

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WindowsFormsApplication3.Model;
using WindowsFormsApplication3.Enums;
using WindowsFormsApplication3.DataStorge;

namespace WindowsFormsApplication3.Jobs
{
    public class BaseJob
    {
        public delegate void JobStateChangeHanlder(CheckoutStep checkoutStep,JobStatus jobStatus);
        public event JobStateChangeHanlder JobStateChangeEvent;

        public void ReportJobStateChange(CheckoutStep checkoutStep, JobStatus jobStatus)
        {
            if (JobStateChangeEvent != null)
            {
                JobStateChangeEvent(checkoutStep, jobStatus);
            }
        }
        public virtual string Action {
            get { return string.Empty; }
        }

        protected CheckoutContext checkoutContext;
        protected CheckoutStep checkoutStep;

        protected CheckoutContext step;
        public CheckoutContext Step {
            get { return step; }
        }

        protected string message;
        public string Message {
            get { return message; }
        }

        protected JobStatus status;
        public JobStatus Status {
            get { return status; }
        }

        public BaseJob(CheckoutContext checkoutContext, CheckoutStep checkoutStep) {
            this.checkoutContext = checkoutContext;
            this.checkoutStep = checkoutStep;
            Reset();
        }

        public virtual void Execute(object _stateInfo)
        {
            message = string.Empty;
            status = JobStatus.Processing;
        }

        public virtual void Reset() {
            message = string.Empty;
            status = JobStatus.Waiting;
        }


    }
}
原文地址:https://www.cnblogs.com/rosizel/p/3859392.html