private void PrepareExcelForm() { CCloudDao cDao = new CCloudDao(); cDao.NotifyDataBaseFinished += new NotifyDataBaseFinishedHandler(Data_Receviced); cDao.GetNMSLogReportCommandList(this.sessionId); }
private void BatchDeviceInfo(string fileName) { try { object missing = System.Reflection.Missing.Value; string strProvider = string.Empty; strProvider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0\""; OleDbConnection excelConnection = new OleDbConnection(strProvider); excelConnection.Open(); string strQuery = "SELECT * FROM [Sheet1$]"; OleDbCommand dbCommand = new OleDbCommand(strQuery, excelConnection); OleDbDataAdapter dataAdapter = new OleDbDataAdapter(dbCommand); DataTable dTable = new DataTable(); dataAdapter.Fill(dTable); List<CelotMClient.Model.Device> deviceList = new List<CelotMClient.Model.Device>(); CelotMClient.Model.Device device; int rowIndex = 0; foreach (DataRow row in dTable.Rows) { device = new CelotMClient.Model.Device(); device.Name = Convert.ToString(row[ExcelColumnIndex.NAME]); device.SerialNo = Convert.ToInt32(row[ExcelColumnIndex.SERIAL_NUMBER]); device.SecuCode = Convert.ToString(row[ExcelColumnIndex.SECURE_CODE]); device.PhoneNumber = Convert.ToInt32(row[ExcelColumnIndex.PHONE_NUMBER]); device.GroupName = Convert.ToString(row[ExcelColumnIndex.GROUP]); device.RouterIp = Convert.ToString(row[ExcelColumnIndex.ROUTER_IP]); device.Latitude = Convert.ToString(row[ExcelColumnIndex.LATITUDE]); device.Longitude = Convert.ToString(row[ExcelColumnIndex.LONGITUDE]); device.SmsSupport = Convert.ToString(row[ExcelColumnIndex.SMS]).ToUpper().Equals("ON") ? (int)SmsSupport.SUPPORTED : (int)SmsSupport.UNSUPPORTED; device.WifiSupport = Convert.ToString(row[ExcelColumnIndex.WIFI]).ToUpper().Equals("ON") ? (int)WifiSupport.SUPPORTED : (int)WifiSupport.UNSUPPORTED; device.BatterySupport = Convert.ToString(row[ExcelColumnIndex.BATTERY]).ToUpper().Equals("ON") ? (int)BatterySupport.SUPPORTED : (int)BatterySupport.UNSUPPORTED; device.VpnSupport = Convert.ToString(row[ExcelColumnIndex.VPN]).ToUpper().Equals("ON") ? (int)VpnSupport.SUPPORTED : (int)VpnSupport.UNSUPPORTED; device.Des = Convert.ToString(row[ExcelColumnIndex.DES]); deviceList.Add(device); rowIndex++; Debug.WriteLine(String.Format( "{0} | {1} | {2} | {3} | {4} | {5} | {6} | {7} | {8} | {9} | {10} | {11} | {12} ", device.Name, device.SerialNo, device.SecuCode, device.PhoneNumber, device.GroupName, device.RouterIp, device.Latitude, device.Longitude, device.SmsSupport, device.WifiSupport, device.BatterySupport, device.VpnSupport, device.Des )); } dTable.Dispose(); dataAdapter.Dispose(); dbCommand.Dispose(); excelConnection.Close(); excelConnection.Dispose(); if (deviceList.Count < 1) { MessageBox.Show("디바이스 입력 정보가 존재하지 않습니다"); return; } Debug.WriteLine("디바이스 개수 : " + deviceList.Count); bool isError = false; StringBuilder strBuilder = new StringBuilder(); //최신의 디바이스 리스트로 업데이트 ApplicationCache.Instance().LoadDevices(); List<CelotMClient.Model.Device> tempRegisteredList = new List<CelotMClient.Model.Device>(ApplicationCache.Instance().Devices); foreach (CelotMClient.Model.Device d1 in deviceList) { var query = tempRegisteredList.Where(x => x.PhoneNumber == d1.PhoneNumber || x.SerialNo == d1.SerialNo); if (query.Count() > 0) { isError = true; strBuilder.AppendLine(String.Format("Router Info overlapped : Ip {0}, Phone {1}, Serial {2}", d1.RouterIp, d1.PhoneNumber, d1.SerialNo)); } if (!CelotUtility.CheckValidIp(d1.RouterIp)) { isError = true; strBuilder.AppendLine(String.Format("wrong ip format : Ip {0}, Phone {1}, Serial {2}", d1.RouterIp, d1.PhoneNumber, d1.SerialNo)); } tempRegisteredList.Add(d1); } if (isError) { Logger.singleton().log(logLevel.Error, "DEVICE REGISTER ERROR", strBuilder.ToString()); MessageBox.Show("파일에 잘못된 디바이스 정보가 있습니다.등록을 취소합니다.\n자세한 사항은 로그파일을 확인해주세요"); this.deviceFileName = ""; this.deviceFileBox.Text = ""; this.deviceBatchfileStatus = 0; this.setDeviceBatchBtnText(); return; } string insertBatchQuery = this.BuildInsertBatchQuery(deviceList); Debug.WriteLine(insertBatchQuery); CCloudDao cDao = new CCloudDao(); cDao.NotifyDataBaseFinished += new NotifyDataBaseFinishedHandler(DeviceBatch_Finished); cDao.RawAffectedQuery(insertBatchQuery); }catch(Exception ee){ throw ee; } }