/// <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")); } }
//public static bool? Result { get; set; } public W_Config() { // Result = null; // _SelectedLanguage = PS.Default.Language; InitializeComponent(); DataContext = _Model = new M_Config(); }
/// <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; } }
/// <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)); }
//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); } } }
/// <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); } }
/// <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; } }