日期:2014-05-18 浏览次数:21113 次
using System;
using Server;
using PublicControl.Run;
using PublicControl.DataBas;
using System.Data;
using System.Data.SqlClient;
namespace Server.RUN
{
    /// <summary>
    /// RunApp 服务器执行的虚拟类
    /// </summary>
    public abstract class RunApp
    {
        /// <summary>
        /// 使用本服务的用户
        /// </summary>
        protected OnlineUser onlineUser=new OnlineUser();
        /// <summary>
        /// 运行参数
        /// </summary>
        protected RunParam runParam;
        /// <summary>
        /// 共享服务提供类
        /// </summary>
        protected PublicServer publicServer;    
        /// <summary>
        /// 数据库应用对象
        /// </summary>
        protected DataBasAPP dataBasAPP;
        /// <summary>
        /// 是否继续运行
        /// </summary>
        protected bool fContinueRUN=true;
        
        /// <summary>
        /// 挑选需要处理的数据
        /// </summary>
        protected virtual void SecurityCheck()
        {
            OnlineUserCache temp=(OnlineUserCache)this.publicServer[onlineUser.GetType().FullName];    
            OnlineUser user=temp.GetData(runParam.UserID,null);
            if(user==null)
            {
                runParam.Error=true;
                runParam.ErrorInfo="您没有登陆系统请登陆后在做操作.";    
                return;
            }
            if(user.SecurityPassword!=runParam.SecurityCheck)
            {
                runParam.Error=true;
                runParam.ErrorInfo="信任关系校验失败,请重新登陆.\n很有可能是您又在其它地方登陆了.";    
                return;
            }
            onlineUser=user;
            user.UserWorkTime=DateTime.Now;
        }
        /// <summary>
        /// 挑选需要处理的数据
        /// </summary>
        protected abstract void SelectDataList();
        /// <summary>
        /// 开始预处理
        /// </summary>
        protected abstract void BeginRUNList();
        /// <summary>
        /// 处理结束收尾.
        /// </summary>
        protected abstract void EndRUNList();
        /// <summary>
        /// 更新数据库
        /// </summary>
        protected abstract void UpDataList();
        /// <summary>
        /// 是否继续运行
        /// </summary>
        protected bool Continue