Esempio n. 1
0
        /// <summary>
        /// 开始自动同步
        /// </summary>
        public void StartAuto()
        {
            M_Config config = CommonClass.SystemConfig.GetConfig();

            if (config.IsSpanTime)
            {
                syncTime = DateTime.Now.AddMinutes(int.Parse(config.SyncSpanTime));
            }
            else
            {
                syncTime = DateTime.Parse(DateTime.Now.ToLongDateString() + " " + config.SyncTime);
                if (syncTime < DateTime.Now)
                {
                    syncTime = syncTime.AddDays(1);
                }
            }
            if (SyncTime != null)
            {
                SyncTime(syncTime.ToString("yyy-MM-dd HH:mm:ss"));
            }
            syncT          = new System.Timers.Timer(30000);
            syncT.Enabled  = true;
            syncT.Elapsed += syncT_Elapsed;
            syncT.Start();
            if (SyncMessage != null)
            {
                SyncMessage("开始自动同步!下次同步时间:" + syncTime.ToString("yyyy-MM-dd HH:mm:ss"));
            }
        }
Esempio n. 2
0
        //public static bool? Result { get; set; }



        public W_Config()
        {
            //  Result = null;
            //   _SelectedLanguage = PS.Default.Language;
            InitializeComponent();
            DataContext = _Model = new M_Config();
        }
Esempio n. 3
0
        /// <summary>
        /// 连接测试
        /// </summary>
        public void SeatLinkTest()
        {
            if (SyncMessage != null)
            {
                SyncMessage("连接测试......");
            }
            M_Config config     = CommonClass.SystemConfig.GetConfig();
            bool     testReturn = false;

            try
            {
                SqlConnection conn = new SqlConnection(config.SeatDbSetting.ToConnectionString());
                conn.Open();
                testReturn = true;
            }
            catch (Exception ex)
            {
                if (SyncMessage != null)
                {
                    SyncMessage(ex.Message);
                }
            }
            if (SyncMessage != null)
            {
                SyncMessage(testReturn ? "连接成功!" : "连接失败!");
            }
        }
        /// <summary>
        /// 获取读者信息
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public List <string> GetReaderInfo(M_Config config)
        {
            List <string> readerList = new List <string>();

            try
            {
                if (File.Exists(config.FilePath))
                {
                    FileStream   fs = new FileStream(config.FilePath, FileMode.Open, FileAccess.Read);
                    StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("GB2312"));
                    int          i  = 0;
                    while (true)
                    {
                        //全部读取
                        string line = sr.ReadLine();
                        if (line == null)
                        {
                            break;
                        }
                        readerList.Add(line);
                    }
                }
                return(readerList);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 5
0
        /// <summary>
        /// ftp测试
        /// </summary>
        public void FtpTest()
        {
            M_Config config = CommonClass.SystemConfig.GetConfig();

            if (SyncMessage != null)
            {
                SyncMessage("FTP文件下载测试......");
            }
            try
            {
                // 根据uri创建FtpWebRequest对象
                FtpWebRequest reqFTP = (FtpWebRequest)WebRequest.Create(new Uri(config.FtpSetting.FtpFileUrl));
                // 指定数据传输类型
                reqFTP.UseBinary = true;
                // ftp用户名和密码
                reqFTP.Credentials = new NetworkCredential(config.FtpSetting.UID, config.FtpSetting.PW);
                string newFileName = config.FtpSetting.SavePath;
                if (File.Exists(newFileName))
                {
                    File.Delete(newFileName);
                }
                //连接
                FtpWebResponse response   = (FtpWebResponse)reqFTP.GetResponse();
                Stream         ftpStream  = response.GetResponseStream();
                long           cl         = response.ContentLength;
                int            bufferSize = 2048;
                int            readCount;
                byte[]         buffer = new byte[bufferSize];
                readCount = ftpStream.Read(buffer, 0, bufferSize);
                FileStream outputStream = new FileStream(newFileName, FileMode.Create);
                while (readCount > 0)
                {
                    outputStream.Write(buffer, 0, readCount);
                    readCount = ftpStream.Read(buffer, 0, bufferSize);
                }
                ftpStream.Close();
                outputStream.Close();
                response.Close();
                if (!File.Exists(newFileName))
                {
                    if (SyncMessage != null)
                    {
                        SyncMessage("FTP文件下载失败!");
                    }
                    return;
                }
            }
            catch (Exception ex)
            {
                if (SyncMessage != null)
                {
                    SyncMessage(ex.Message);
                }
            }
        }
        private static void timeLoop_TimeTo(object sender, EventArgs e)
        {
            try
            {
                if (IsTimeToWork() && IsWork == false)
                {
                    IsWork = true; //开始工作
                    try
                    {
                        M_Config config     = CommonClass.SystemConfig.GetConfig();
                        bool     testReturn = false;
                        ReaderInfoSource.XZXSource source = new ReaderInfoSource.XZXSource();
                        testReturn = source.LinkDataSourceTest(config);
                        string msg = testReturn ? "第三方链接成功" : "第三方链接失败";
                        Display(msg);

                        Display("开始获取记录条数");
                        int recordCount = source.GetReaderInfo(config);
                        Display("共获取到记录数" + recordCount + "条");
                        Display("开始下载读者信息文件");

                        string newFilePath = AppDomain.CurrentDomain.BaseDirectory + "File\\";
                        string oldFilePath = AppDomain.CurrentDomain.BaseDirectory + "RecvTemp\\";

                        string[] files = Directory.GetFiles(oldFilePath);
                        if (files.Length < 1)
                        {
                            throw new Exception("找不到读者信息文件!");
                        }
                        else
                        {
                            string oldFile = files[files.Length - 1];
                            File.Copy(oldFile, newFilePath + "data", true);
                            Display("读者信息文件下载成功");
                        }
                    }
                    catch (Exception ex)
                    {
                        Display(ex.ToString());
                        SeatManage.SeatManageComm.WriteLog.Write(ex.ToString());
                    }
                    IsWork = false;
                }
            }
            catch (Exception ex)
            {
                WriteLog.Write("异常信息:" + ex);
                Display("异常信息:" + ex);
            }
        }
 /// <summary>
 /// 获取设置
 /// </summary>
 /// <returns></returns>
 public static M_Config GetConfig()
 {
     try
     {
         M_Config      configModel = new M_Config();
         Configuration config      = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
         //FTP配置获取
         configModel.FtpSetting.FtpFileUrl = config.AppSettings.Settings["FTPFileUrl"].Value;
         configModel.FtpSetting.SavePath   = config.AppSettings.Settings["FilePath"].Value;
         configModel.FtpSetting.UID        = config.AppSettings.Settings["FTPUID"].Value;
         configModel.FtpSetting.PW         = config.AppSettings.Settings["FTPPW"].Value;
         configModel.FtpSetting.UseFtp     = config.AppSettings.Settings["UseFtp"].Value == "1";
         //数据库配置
         configModel.OrcaleSourceSetting = new M_OrcaleSetting(config.ConnectionStrings.ConnectionStrings["OrcaleConnection"].ConnectionString);
         configModel.SqlSourceSetting    = new M_SQLSetting(config.ConnectionStrings.ConnectionStrings["SQLConnection"].ConnectionString);
         configModel.SeatDbSetting       = new M_SQLSetting(config.ConnectionStrings.ConnectionStrings["ConnectionString"].ConnectionString);
         configModel.SybaseSourceSetting = new M_SybaseSetting(config.ConnectionStrings.ConnectionStrings["SybaseConnection"].ConnectionString);
         configModel.TypeKeys            = new M_Key(config.AppSettings.Settings["SourceKey"].Value);
         //新中新接口配置
         configModel.XzxSetting.Ip                  = config.AppSettings.Settings["XZXIP"].Value.Split(':')[0];
         configModel.XzxSetting.Port                = config.AppSettings.Settings["XZXIP"].Value.Split(':')[1];
         configModel.XzxSetting.SysCode             = config.AppSettings.Settings["XZXSysCode"].Value;
         configModel.XzxSetting.TerminalNo          = config.AppSettings.Settings["TerminalNo"].Value;
         configModel.XzxSetting.EveryInfoGet        = config.AppSettings.Settings["EveryInfoGet"].Value == "1";
         configModel.XzxSetting.NoStudentUseAccount = config.AppSettings.Settings["NoStudentUseAccount"].Value == "1";
         configModel.XzxSetting.SyncAccountNum      = config.AppSettings.Settings["SyncAccountNum"].Value == "1";
         //其他设置
         configModel.AccessAccount = config.AppSettings.Settings["AccessAccount"].Value == "1";
         configModel.AutoSetup     = config.AppSettings.Settings["AutoSetup"].Value == "1";
         configModel.ClearAccount  = config.AppSettings.Settings["ClearAccount"].Value == "1";
         configModel.FilePath      = config.AppSettings.Settings["FilePath"].Value;
         configModel.MiniSetup     = config.AppSettings.Settings["MiniSetup"].Value == "1";
         configModel.SyncPw        = config.AppSettings.Settings["SyncPw"].Value == "1";
         configModel.SyncTime      = config.AppSettings.Settings["SyncTime"].Value;
         configModel.SyncSpanTime  = config.AppSettings.Settings["SyncSpanTime"].Value;
         configModel.SourceType    = (E_SyncSourceType)int.Parse(config.AppSettings.Settings["SourceType"].Value);
         configModel.TypeKeys      = new M_Key(config.AppSettings.Settings["SourceKey"].Value);
         configModel.SQLString     = config.AppSettings.Settings["SQLString"].Value;
         configModel.IsSpanTime    = config.AppSettings.Settings["IsSpanTime"].Value == "1";
         return(configModel);
     }
     catch (Exception ex)
     {
         WriteLog.Write("获取配置文件遇到错误:" + ex.Message);
         return(null);
     }
 }
        /// <summary>
        /// 保存设置
        /// </summary>
        /// <param name="configModel"></param>
        /// <returns></returns>
        public static string SaveConfig(M_Config configModel)
        {
            try
            {
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                //FTP配置获取
                config.AppSettings.Settings["FTPFileUrl"].Value = configModel.FtpSetting.FtpFileUrl;
                config.AppSettings.Settings["FTPUID"].Value     = configModel.FtpSetting.UID;
                config.AppSettings.Settings["FTPPW"].Value      = configModel.FtpSetting.PW;
                config.AppSettings.Settings["UseFtp"].Value     = configModel.FtpSetting.UseFtp ? "1" : "0";

                //数据库配置
                config.ConnectionStrings.ConnectionStrings["OrcaleConnection"].ConnectionString = configModel.OrcaleSourceSetting.ToConnectionString();
                config.ConnectionStrings.ConnectionStrings["SQLConnection"].ConnectionString    = configModel.SqlSourceSetting.ToConnectionString();
                config.ConnectionStrings.ConnectionStrings["ConnectionString"].ConnectionString = configModel.SeatDbSetting.ToConnectionString();
                config.ConnectionStrings.ConnectionStrings["SybaseConnection"].ConnectionString = configModel.SybaseSourceSetting.ToConnectionString();
                config.AppSettings.Settings["SourceKey"].Value = configModel.TypeKeys.ToValue();
                //新中新接口配置
                config.AppSettings.Settings["XZXIP"].Value               = configModel.XzxSetting.Ip + ":" + configModel.XzxSetting.Port;
                config.AppSettings.Settings["XZXSysCode"].Value          = configModel.XzxSetting.SysCode;
                config.AppSettings.Settings["TerminalNo"].Value          = configModel.XzxSetting.TerminalNo;
                config.AppSettings.Settings["EveryInfoGet"].Value        = configModel.XzxSetting.EveryInfoGet ? "1" : "0";
                config.AppSettings.Settings["NoStudentUseAccount"].Value = configModel.XzxSetting.NoStudentUseAccount ? "1" : "0";
                config.AppSettings.Settings["SyncAccountNum"].Value      = configModel.XzxSetting.SyncAccountNum ? "1" : "0";
                //其他设置
                config.AppSettings.Settings["AccessAccount"].Value = configModel.AccessAccount ? "1" : "0";
                config.AppSettings.Settings["AutoSetup"].Value     = configModel.AutoSetup ? "1" : "0";
                config.AppSettings.Settings["ClearAccount"].Value  = configModel.ClearAccount ? "1" : "0";
                config.AppSettings.Settings["FilePath"].Value      = configModel.FilePath;
                config.AppSettings.Settings["MiniSetup"].Value     = configModel.MiniSetup ? "1" : "0";
                config.AppSettings.Settings["SyncPw"].Value        = configModel.SyncPw ? "1" : "0";
                config.AppSettings.Settings["SyncTime"].Value      = configModel.SyncTime;
                config.AppSettings.Settings["SyncSpanTime"].Value  = configModel.SyncSpanTime;
                config.AppSettings.Settings["SourceType"].Value    = ((int)configModel.SourceType).ToString();
                config.AppSettings.Settings["SQLString"].Value     = configModel.SQLString;
                config.AppSettings.Settings["IsSpanTime"].Value    = configModel.IsSpanTime ? "1" : "0";
                config.Save();
                return("保存成功");
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
        /// <summary>
        /// 转换信息
        /// </summary>
        /// <param name="config"></param>
        /// <param name="readerDs"></param>
        /// <returns></returns>
        public DataTable GetReaderList(M_Config config, List <string> readerDs)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("CardNo");
            dt.Columns.Add("CardID");
            dt.Columns.Add("ReaderName");
            dt.Columns.Add("Sex");
            dt.Columns.Add("ReaderTypeName");
            dt.Columns.Add("ReaderDeptName");
            dt.Columns.Add("ReaderProName");
            dt.Columns.Add("Flag");
            dt.Columns.Add("Password");
            for (int i = 0; i < readerDs.Count; i++)
            {
                string   line    = readerDs[i];
                string[] strlist = line.Split(',');
                DataRow  ndr     = dt.NewRow();
                int      num     = 999;
                ndr["CardNo"]         = int.TryParse(config.TypeKeys.CardNo, out num) && num < strlist.Length && strlist[num] != null ? strlist[num].Trim() : "";
                ndr["CardID"]         = int.TryParse(config.TypeKeys.CardID, out num) && num < strlist.Length && strlist[num] != null ? strlist[num].Trim() : "";
                ndr["ReaderName"]     = int.TryParse(config.TypeKeys.Name, out num) && num < strlist.Length && strlist[num] != null ? strlist[num].Trim() : "";
                ndr["Sex"]            = int.TryParse(config.TypeKeys.Sex, out num) && num < strlist.Length && strlist[num] != null ? strlist[num].Trim() : "";
                ndr["ReaderTypeName"] = int.TryParse(config.TypeKeys.Type, out num) && num < strlist.Length && strlist[num] != null ? strlist[num].Trim() : "";
                ndr["ReaderDeptName"] = int.TryParse(config.TypeKeys.Dept, out num) && num < strlist.Length && strlist[num] != null ? strlist[num].Trim() : "";
                ndr["Flag"]           = int.TryParse(config.TypeKeys.Flag, out num) && num < strlist.Length && strlist[num] != null ? strlist[num].Trim() : "";
                ndr["Password"]       = int.TryParse(config.TypeKeys.Password, out num) && num < strlist.Length && strlist[num] != null ? strlist[num].Trim() : "";
                ndr["ReaderProName"]  = "";
                if (string.IsNullOrEmpty(ndr["CardNo"].ToString()))
                {
                    continue;
                }
                dt.Rows.Add(ndr);
                if ((i % 100 == 0 || i == readerDs.Count - 1) && DataProgress != null)
                {
                    DataProgress(i);
                }
            }
            return(dt);
        }
        private void MainForm_Load(object sender, EventArgs e)
        {
            GetData();
            getReader               = new GetReaderSource();
            getReader.SyncMessage  += getReader_SyncMessage;
            getReader.SyncProgress += getReader_SyncProgress;
            getReader.SyncTime     += getReader_SyncTime;
            M_Config config = CommonClass.SystemConfig.GetConfig();

            if (config.AutoSetup)
            {
                getReader.StartAuto();
                isAuto        = true;
                btn_Auto.Text = "停止自动同步";
            }
            if (config.MiniSetup)
            {
                this.Hide();
                this.ShowInTaskbar            = false;
                this.nIcon.Visible            = true;
                this.nIcon.BalloonTipClicked += nIcon_BalloonTipClicked;
            }
        }
        private void GetData()
        {
            M_Config config = CommonClass.SystemConfig.GetConfig();

            if (config == null)
            {
                rtb_Message.Text = "设置获取失败!\n";
                return;
            }
            tb_SQL_IP.Text   = config.SqlSourceSetting.Ip;
            tb_SQL_DB.Text   = config.SqlSourceSetting.DBName;
            tb_SQL_User.Text = config.SqlSourceSetting.UID;
            tb_SQL_PW.Text   = config.SqlSourceSetting.PW;

            tb_Oracle_SSID.Text = config.OrcaleSourceSetting.SID;
            tb_Orcale_User.Text = config.OrcaleSourceSetting.UID;
            tb_Orcale_PW.Text   = config.OrcaleSourceSetting.PW;

            tb_Sybase_IPPort.Text = config.SybaseSourceSetting.Ip + ":" + config.SybaseSourceSetting.Port;
            tb_Sybase_DB.Text     = config.SybaseSourceSetting.DBName;
            tb_Sybase_UID.Text    = config.SybaseSourceSetting.UID;
            tb_Sybase_PW.Text     = config.SybaseSourceSetting.PW;

            tb_XZX_IP.Text           = config.XzxSetting.Ip;
            tb_XZX_Port.Text         = config.XzxSetting.Port;
            tb_XZX_SystemCode.Text   = config.XzxSetting.SysCode;
            tb_XZX_Trem.Text         = config.XzxSetting.TerminalNo;
            cb_XZX_EveryInfo.Checked = config.XzxSetting.EveryInfoGet;
            cb_XZX_SyncAcc.Checked   = config.XzxSetting.SyncAccountNum;
            cb_XZX_NoStud.Checked    = config.XzxSetting.NoStudentUseAccount;

            tb_Seat_IP.Text   = config.SeatDbSetting.Ip;
            tb_Seat_Name.Text = config.SeatDbSetting.DBName;
            tb_Seat_UID.Text  = config.SeatDbSetting.UID;
            tb_Seat_PW.Text   = config.SeatDbSetting.PW;

            tb_FilePath.Text  = config.FilePath;
            tb_FTP_Path.Text  = config.FtpSetting.FtpFileUrl;
            tb_FTP_PW.Text    = config.FtpSetting.PW;
            tb_FTP_UID.Text   = config.FtpSetting.UID;
            cb_UseFTP.Checked = config.FtpSetting.UseFtp;

            tb_CardID.Text = config.TypeKeys.CardID;
            tb_CardNo.Text = config.TypeKeys.CardNo;
            tb_Dept.Text   = config.TypeKeys.Dept;
            tb_Flag.Text   = config.TypeKeys.Flag;
            tb_Name.Text   = config.TypeKeys.Name;
            tb_PW.Text     = config.TypeKeys.Password;
            tb_Sex.Text    = config.TypeKeys.Sex;
            tb_Type.Text   = config.TypeKeys.Type;

            switch (config.SourceType)
            {
            case E_SyncSourceType.Excel: rbtype_Excel.Checked = true; break;

            case E_SyncSourceType.Sybase: rbtype_Sybase.Checked = true; break;

            case E_SyncSourceType.None: rbtype_SQL.Checked = true; break;

            case E_SyncSourceType.Orcale: rbtype_Orcale.Checked = true; break;

            case E_SyncSourceType.SQL: rbtype_SQL.Checked = true; break;

            case E_SyncSourceType.TXT: rbtype_TXT.Checked = true; break;

            case E_SyncSourceType.Xml: rbtype_Xml.Checked = true; break;

            case E_SyncSourceType.XZX: rbtype_XZX.Checked = true; break;
            }
            cb_AutoActive.Checked = config.AccessAccount;
            cb_AutoLogout.Checked = config.ClearAccount;
            cb_AutoSync.Checked   = config.AutoSetup;
            cb_MiniSetup.Checked  = config.MiniSetup;
            cb_SyncPW.Checked     = config.SyncPw;
            tb_SyancTime.Text     = config.SyncTime;
            tb_SpanTime.Text      = config.SyncSpanTime;
            rtb_SQLSelect.Text    = config.SQLString;
            if (config.IsSpanTime)
            {
                rb_SpanSync.Checked = true;
            }
            else
            {
                rb_TimeSync.Checked = true;
            }
        }
        private void btn_Save_Click(object sender, EventArgs e)
        {
            rtb_Message.Text = "";
            M_Config config = new M_Config();

            config.SqlSourceSetting.Ip     = tb_SQL_IP.Text;
            config.SqlSourceSetting.DBName = tb_SQL_DB.Text;
            config.SqlSourceSetting.UID    = tb_SQL_User.Text;
            config.SqlSourceSetting.PW     = tb_SQL_PW.Text;

            config.OrcaleSourceSetting.SID = tb_Oracle_SSID.Text;
            config.OrcaleSourceSetting.UID = tb_Orcale_User.Text;
            config.OrcaleSourceSetting.PW  = tb_Orcale_PW.Text;

            tb_Sybase_IPPort.Text             = config.SybaseSourceSetting.Ip + ":" + config.SybaseSourceSetting.Port;
            config.SybaseSourceSetting.DBName = tb_Sybase_DB.Text;
            config.SybaseSourceSetting.UID    = tb_Sybase_UID.Text;
            config.SybaseSourceSetting.PW     = tb_Sybase_PW.Text;

            config.XzxSetting.Ip                  = tb_XZX_IP.Text;
            config.XzxSetting.Port                = tb_XZX_Port.Text;
            config.XzxSetting.SysCode             = tb_XZX_SystemCode.Text;
            config.XzxSetting.TerminalNo          = tb_XZX_Trem.Text;
            config.XzxSetting.EveryInfoGet        = cb_XZX_EveryInfo.Checked;
            config.XzxSetting.SyncAccountNum      = cb_XZX_SyncAcc.Checked;
            config.XzxSetting.NoStudentUseAccount = cb_XZX_NoStud.Checked;

            config.SeatDbSetting.Ip     = tb_Seat_IP.Text;
            config.SeatDbSetting.DBName = tb_Seat_Name.Text;
            config.SeatDbSetting.UID    = tb_Seat_UID.Text;
            config.SeatDbSetting.PW     = tb_Seat_PW.Text;

            config.FilePath = tb_FilePath.Text;
            config.FtpSetting.FtpFileUrl = tb_FTP_Path.Text;
            config.FtpSetting.PW         = tb_FTP_PW.Text;
            config.FtpSetting.UID        = tb_FTP_UID.Text;
            config.FtpSetting.UseFtp     = cb_UseFTP.Checked;


            config.TypeKeys.CardID   = tb_CardID.Text;
            config.TypeKeys.CardNo   = tb_CardNo.Text;
            config.TypeKeys.Dept     = tb_Dept.Text;
            config.TypeKeys.Flag     = tb_Flag.Text;
            config.TypeKeys.Name     = tb_Name.Text;
            config.TypeKeys.Password = tb_PW.Text;
            config.TypeKeys.Sex      = tb_Sex.Text;
            config.TypeKeys.Type     = tb_Type.Text;

            config.SourceType = rbtype_Excel.Checked ? E_SyncSourceType.Excel :
                                rbtype_Sybase.Checked ? E_SyncSourceType.Sybase :
                                rbtype_SQL.Checked ? E_SyncSourceType.SQL :
                                rbtype_Orcale.Checked ? E_SyncSourceType.Orcale :
                                rbtype_TXT.Checked ? E_SyncSourceType.TXT :
                                rbtype_Xml.Checked ? E_SyncSourceType.Xml :
                                rbtype_XZX.Checked ? E_SyncSourceType.XZX :
                                E_SyncSourceType.None;

            config.AccessAccount = cb_AutoActive.Checked;
            config.ClearAccount  = cb_AutoLogout.Checked;
            config.AutoSetup     = cb_AutoSync.Checked;
            config.MiniSetup     = cb_MiniSetup.Checked;
            config.SyncPw        = cb_SyncPW.Checked;
            config.SyncTime      = tb_SyancTime.Text;
            config.SyncSpanTime  = tb_SpanTime.Text;
            config.SQLString     = rtb_SQLSelect.Text;
            config.IsSpanTime    = rb_SpanSync.Checked;
            rtb_Message.Text     = CommonClass.SystemConfig.SaveConfig(config) + "\n";
        }
 /// <summary>
 /// 测试文件是否存在
 /// </summary>
 /// <param name="config"></param>
 /// <returns></returns>
 public bool LinkDataSourceTest(M_Config config)
 {
     return(File.Exists(config.FilePath));
 }
Esempio n. 14
0
        //private bool isSync = false;
        /// <summary>
        /// 连接测试
        /// </summary>
        public void LinkTest()
        {
            M_Config config     = CommonClass.SystemConfig.GetConfig();
            bool     testReturn = false;

            if (SyncMessage != null)
            {
                SyncMessage("连接测试......");
            }
            try
            {
                switch (config.SourceType)
                {
                case E_SyncSourceType.Excel:
                {
                    ReaderInfoSource.ExcelSource source = new ReaderInfoSource.ExcelSource();
                    testReturn = source.LinkDataSourceTest(config);
                }
                break;

                case E_SyncSourceType.Sybase:
                {
                    ReaderInfoSource.SybaseSource source = new ReaderInfoSource.SybaseSource();
                    testReturn = source.LinkDataSourceTest(config);
                }
                break;

                case E_SyncSourceType.Orcale:
                {
                    ReaderInfoSource.OrcaleSource source = new ReaderInfoSource.OrcaleSource();
                    testReturn = source.LinkDataSourceTest(config);
                }
                break;

                case E_SyncSourceType.SQL:
                {
                    ReaderInfoSource.SQLSource source = new ReaderInfoSource.SQLSource();
                    testReturn = source.LinkDataSourceTest(config);
                }
                break;

                case E_SyncSourceType.TXT:
                {
                    ReaderInfoSource.TxtSource source = new ReaderInfoSource.TxtSource();
                    testReturn = source.LinkDataSourceTest(config);
                }
                break;

                case E_SyncSourceType.Xml:
                {
                    ReaderInfoSource.XmlSource source = new ReaderInfoSource.XmlSource();
                    testReturn = source.LinkDataSourceTest(config);
                }
                break;

                case E_SyncSourceType.XZX:
                {
                    ReaderInfoSource.XZXSource source = new ReaderInfoSource.XZXSource();
                    testReturn = source.LinkDataSourceTest(config);
                }
                break;
                }
                if (SyncMessage != null)
                {
                    SyncMessage(testReturn ? "连接成功!" : "连接失败!");
                }
            }
            catch (Exception ex)
            {
                if (SyncMessage != null)
                {
                    SyncMessage(ex.Message);
                }
            }
        }
Esempio n. 15
0
        /// <summary>
        /// 获取数据测试
        /// </summary>
        public void GetDateTest()
        {
            M_Config config = CommonClass.SystemConfig.GetConfig();

            if (SyncMessage != null)
            {
                SyncMessage("获取到用户信息测试......");
            }
            try
            {
                switch (config.SourceType)
                {
                case E_SyncSourceType.Excel:
                {
                    ReaderInfoSource.ExcelSource source = new ReaderInfoSource.ExcelSource();
                    DataTable testReturn = source.GetReaderInfo(config);
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + testReturn.Rows.Count.ToString() + "条");
                    }
                }
                break;

                case E_SyncSourceType.Sybase:
                {
                    ReaderInfoSource.SybaseSource source = new ReaderInfoSource.SybaseSource();
                    DataTable testReturn = source.GetReaderInfo(config);
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + testReturn.Rows.Count.ToString() + "条");
                    }
                }
                break;

                case E_SyncSourceType.Orcale:
                {
                    ReaderInfoSource.OrcaleSource source = new ReaderInfoSource.OrcaleSource();
                    DataTable testReturn = source.GetReaderInfo(config);
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + testReturn.Rows.Count.ToString() + "条");
                    }
                }
                break;

                case E_SyncSourceType.SQL:
                {
                    ReaderInfoSource.SQLSource source = new ReaderInfoSource.SQLSource();
                    DataTable testReturn = source.GetReaderInfo(config);
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + testReturn.Rows.Count.ToString() + "条");
                    }
                }
                break;

                case E_SyncSourceType.TXT:
                {
                    ReaderInfoSource.TxtSource source = new ReaderInfoSource.TxtSource();
                    List <string> testReturn          = source.GetReaderInfo(config);
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + testReturn.Count.ToString() + "条");
                    }
                }
                break;

                case E_SyncSourceType.Xml:
                {
                    ReaderInfoSource.XmlSource source = new ReaderInfoSource.XmlSource();
                    XmlNodeList testReturn            = source.GetReaderInfo(config);
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + testReturn.Count.ToString() + "条");
                    }
                }
                break;

                case E_SyncSourceType.XZX:
                {
                    ReaderInfoSource.XZXSource source = new ReaderInfoSource.XZXSource();
                    int testReturn = source.GetReaderInfo(config);
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + testReturn + "条");
                    }
                }
                break;
                }
            }
            catch (Exception ex)
            {
                if (SyncMessage != null)
                {
                    SyncMessage(ex.Message);
                }
            }
        }
        private static void timeLoop_TimeTo(object sender, EventArgs e)
        {
            try
            {
                if (IsTimeToWork() && IsWork == false)
                {
                    IsWork = true; //开始工作
                    try
                    {
                        //拷贝文件
                        string   oldPath = ConfigurationManager.AppSettings["oldFilePath"];
                        string[] files   = Directory.GetFiles(oldPath);
                        if (files.Length < 1)
                        {
                            throw new Exception("找不到读者信息文件!");
                        }
                        else
                        {
                            string newFilePath = AppDomain.CurrentDomain.BaseDirectory + "File\\";
                            string file        = files[files.Length - 1];
                            File.Copy(file, newFilePath + "data", true);
                            Display("读者信息文件拷贝成功");
                            M_Config config          = CommonClass.SystemConfig.GetConfig();
                            System.Data.DataTable dt = GetReaderList(config);
                            DBUtility.DbHelperSQL.connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
                            //1:清空reader表
                            StringBuilder sb = new StringBuilder("delete from T_SM_Reader;");
                            foreach (DataRow item in dt.Rows)
                            {
                                ////排除掉2015年之前的读者数据
                                //try
                                //{
                                //    string yearString = item["CardNo"].ToString().Trim().Substring(0, 4);
                                //    int year = int.Parse(yearString);
                                //    if (year < 2015)
                                //    {
                                //        continue;
                                //    }
                                //}
                                //catch (Exception ex)
                                //{
                                //    SeatManage.SeatManageComm.WriteLog.Write(ex.ToString());
                                //    continue;
                                //}

                                string sql = "insert into T_SM_Reader(CardNo,CardID,ReaderName,ReaderTypeName,ReaderDeptName) values('" + item["CardNo"].ToString().Trim() + "','" + item["CardID"].ToString().Trim() + "','" + item["ReaderName"].ToString().Trim() + "','" + item["ReaderTypeName"].ToString().Trim() + "','" + item["ReaderDeptName"].ToString().Trim() + "');";
                                sb.Append(sql);
                            }
                            int count = DBUtility.DbHelperSQL.ExecuteSqlByTime(sb.ToString(), 300);//同步完reader表
                            sb.Clear();
                            Display("成功同步了" + count + "个读者记录");
                        }
                    }
                    catch (Exception ex)
                    {
                        Display(ex.ToString());
                        SeatManage.SeatManageComm.WriteLog.Write(ex.ToString());
                    }
                    IsWork = false;
                }
            }
            catch (Exception ex)
            {
                SeatManage.SeatManageComm.WriteLog.Write("异常信息:" + ex);
                Display("异常信息:" + ex);
            }
        }
Esempio n. 17
0
        /// <summary>
        /// 同步用户信息
        /// </summary>
        public void SyncReaderInfo()
        {
            //isSync = true;
            DateTime sdt    = DateTime.Now;
            M_Config config = CommonClass.SystemConfig.GetConfig();

            readerCount = 0;
            updateCount = 0;
            addCount    = 0;
            try
            {
                if (config.FtpSetting.UseFtp)
                {
                    if (SyncMessage != null)
                    {
                        SyncMessage("开始下载FTP文件......");
                    }
                    // 根据uri创建FtpWebRequest对象
                    FtpWebRequest reqFTP = (FtpWebRequest)WebRequest.Create(new Uri(config.FtpSetting.FtpFileUrl));
                    // 指定数据传输类型
                    reqFTP.UseBinary = true;
                    // ftp用户名和密码
                    reqFTP.Credentials = new NetworkCredential(config.FtpSetting.UID, config.FtpSetting.PW);
                    string newFileName = config.FtpSetting.SavePath;
                    if (File.Exists(newFileName))
                    {
                        File.Delete(newFileName);
                    }
                    //连接
                    FtpWebResponse response   = (FtpWebResponse)reqFTP.GetResponse();
                    Stream         ftpStream  = response.GetResponseStream();
                    long           cl         = response.ContentLength;
                    int            bufferSize = 2048;
                    int            readCount;
                    byte[]         buffer = new byte[bufferSize];
                    readCount = ftpStream.Read(buffer, 0, bufferSize);
                    FileStream outputStream = new FileStream(newFileName, FileMode.Create);
                    while (readCount > 0)
                    {
                        outputStream.Write(buffer, 0, readCount);
                        readCount = ftpStream.Read(buffer, 0, bufferSize);
                    }
                    ftpStream.Close();
                    outputStream.Close();
                    response.Close();
                    if (!File.Exists(newFileName))
                    {
                        if (SyncMessage != null)
                        {
                            SyncMessage("FTP文件下载失败!");
                        }
                        return;
                    }
                    if (SyncMessage != null)
                    {
                        SyncMessage("文件下载完成!");
                        SyncMessage("开始获取用户信息......");
                    }
                }
                DataTable newDT = null;
                switch (config.SourceType)
                {
                case E_SyncSourceType.Excel:
                {
                    ReaderInfoSource.ExcelSource source = new ReaderInfoSource.ExcelSource();
                    DataTable testReturn = source.GetReaderInfo(config);
                    source.DataProgress += source_ChangeProgress;
                    readerCount          = testReturn.Rows.Count;
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + readerCount.ToString() + "条");
                        SyncMessage("开始转换用户信息......");
                    }
                    newDT = source.GetReaderList(config, testReturn);
                }
                break;

                case E_SyncSourceType.Sybase:
                {
                    ReaderInfoSource.SybaseSource source = new ReaderInfoSource.SybaseSource();
                    DataTable testReturn = source.GetReaderInfo(config);
                    source.DataProgress += source_ChangeProgress;
                    readerCount          = testReturn.Rows.Count;
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + readerCount.ToString() + "条");
                        SyncMessage("开始转换用户信息......");
                    }
                    newDT = source.GetReaderList(config, testReturn);
                }
                break;

                case E_SyncSourceType.Orcale:
                {
                    ReaderInfoSource.OrcaleSource source = new ReaderInfoSource.OrcaleSource();
                    DataTable testReturn = source.GetReaderInfo(config);
                    source.DataProgress += source_ChangeProgress;
                    readerCount          = testReturn.Rows.Count;
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + readerCount.ToString() + "条");
                        SyncMessage("开始转换用户信息......");
                    }
                    newDT = source.GetReaderList(config, testReturn);
                }
                break;

                case E_SyncSourceType.SQL:
                {
                    ReaderInfoSource.SQLSource source = new ReaderInfoSource.SQLSource();
                    DataTable testReturn = source.GetReaderInfo(config);
                    source.DataProgress += source_ChangeProgress;
                    readerCount          = testReturn.Rows.Count;
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + readerCount.ToString() + "条");
                        SyncMessage("开始转换用户信息......");
                    }
                    newDT = source.GetReaderList(config, testReturn);
                }
                break;

                case E_SyncSourceType.TXT:
                {
                    ReaderInfoSource.TxtSource source = new ReaderInfoSource.TxtSource();
                    List <string> testReturn          = source.GetReaderInfo(config);
                    source.DataProgress += source_ChangeProgress;
                    readerCount          = testReturn.Count;
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + readerCount.ToString() + "条");
                        SyncMessage("开始转换用户信息......");
                    }
                    newDT = source.GetReaderList(config, testReturn);
                }
                break;

                case E_SyncSourceType.Xml:
                {
                    ReaderInfoSource.XmlSource source = new ReaderInfoSource.XmlSource();
                    XmlNodeList testReturn            = source.GetReaderInfo(config);
                    source.DataProgress += source_ChangeProgress;
                    readerCount          = testReturn.Count;
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取到用户信息" + readerCount.ToString() + "条");
                        SyncMessage("开始转换用户信息......");
                    }
                    newDT = source.GetReaderList(config, testReturn);
                }
                break;

                case E_SyncSourceType.XZX:
                {
                    try
                    {
                        ReaderInfoSource.XZXSource source = new ReaderInfoSource.XZXSource();
                        int testReturn = source.GetReaderInfo(config);
                        source.DataProgress += source_ChangeProgress;
                        readerCount          = testReturn;
                        if (SyncMessage != null)
                        {
                            SyncMessage("获取到用户信息" + readerCount + "条");
                            SyncMessage("开始转换用户信息......");
                        }

                        newDT = source.GetReaderList(config);
                    }
                    catch (Exception ex)
                    {
                        SeatManage.SeatManageComm.WriteLog.Write(string.Format("异常:" + ex));
                        throw;
                    }
                }
                break;
                }
                if (newDT == null || newDT.Rows.Count < 1)
                {
                    if (SyncMessage != null)
                    {
                        SyncMessage("转换用户信息失败!");
                    }
                }
                else
                {
                    readerCount = newDT.Rows.Count;
                    if (SyncMessage != null)
                    {
                        SyncMessage("转换有效用户信息" + readerCount + "条");
                        SyncMessage("开始同步数据库......");
                    }
                }
                AddReaderInfo addReader = new AddReaderInfo();
                addReader.DataProgress += addReader_DataProgress;
                addReader.AddNewData(newDT, config.SeatDbSetting.ToConnectionString());
                if (SyncMessage != null)
                {
                    SyncMessage("一卡通信息同步完成!");
                }
                if (config.AccessAccount)
                {
                    if (SyncMessage != null)
                    {
                        SyncMessage("开始激活预约账号......");
                    }
                    AddUserInfo addUser = new AddUserInfo();
                    addUser.DataProgress += addUser_DataProgress;
                    DataSet ds = addUser.GetUserDataTable();
                    readerCount = ds.Tables[0].Rows.Count;
                    if (SyncMessage != null)
                    {
                        SyncMessage("已激活账号" + readerCount + "条");
                        SyncMessage("开始获取新增用户激活信息......");
                    }
                    addUser.GetList(newDT, ds.Tables[0], config.SyncPw);
                    List <UserInfo> list = addUser.GetAddList();
                    addCount = list.Count;
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取新增用户" + addCount + "条");
                        SyncMessage("开始添加新增用户激活信息......");
                    }
                    addUser.AddUser(list);
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取新增用户激活完成!");
                        SyncMessage("开始获取更新用户信息......");
                    }
                    list     = addUser.GetUpdateList(config.ClearAccount, config.SyncPw);
                    addCount = list.Count;
                    if (SyncMessage != null)
                    {
                        SyncMessage("获取更新用户" + addCount + "条");
                        SyncMessage("开始更新用户信息......");
                    }
                    addUser.UpdateUser(list);
                    if (SyncMessage != null)
                    {
                        SyncMessage("更新用户信息完成!");
                    }
                }
                if (SyncMessage != null)
                {
                    SyncMessage("同步完成!本次耗时" + (DateTime.Now - sdt).TotalSeconds + "秒");
                }
                if (config.IsSpanTime)
                {
                    syncTime = DateTime.Now.AddMinutes(int.Parse(config.SyncSpanTime));
                }
                else
                {
                    if (syncTime < DateTime.Now)
                    {
                        syncTime = syncTime.AddDays(1);
                        if (SyncTime != null)
                        {
                            SyncTime(syncTime.ToString("yyy-MM-dd HH:mm:ss"));
                        }
                    }
                }
                if (SyncMessage != null)
                {
                    SyncMessage("下次同步时间:" + syncTime.ToString("yyyy-MM-dd HH:mm:ss"));
                }
            }
            catch (Exception ex)
            {
                if (SyncMessage != null)
                {
                    SyncMessage(ex.Message);
                }
            }
            finally
            {
                //isSync = false;
            }
        }