public override IResponseMessage OnTextRequest(IRequestMessage requestMessage) { var biz = new JsonMessage { touser = requestMessage.FromUserName, msgtype = "text", agentid = requestMessage.AgentID.ToString(), text = new JsonMessageInnerType.textcontent { content = requestMessage.Content }, safe = 0 }; var error = JsonSend.SendQyMessage(postModel.CorpId, postModel.Secret, XLH.SerializeJsonToString(biz), Encoding.UTF8); Debug.WriteLine(error); ResponseMessage.CreateFromRequestMessage(requestMessage, QY.Enums.ResponseType.Text); return(null); }
public MonyunSMSSender(JsonSend jsonSend) { _jsonSend = jsonSend; }
public override IResponseMessage OnTextRequest(IRequestMessage requestMessage) { IResponseMessage responseMessage = null; DateTime retdate; IFormatProvider ifp = new System.Globalization.CultureInfo("zh-CN", true); var bDate = DateTime.TryParseExact(requestMessage.Content, "yyyyMM", ifp, System.Globalization.DateTimeStyles.None, out retdate); if (requestMessage.Content.Length != 6 || !bDate) { responseMessage = ResponseMessage.CreateFromRequestMessage(requestMessage, QY.Enums.ResponseType.Text); responseMessage.Content = "您输入的格式有误。"; return(responseMessage); } var jsonObj = JObject.Parse(JsonSend.GetQyUserinfo(postModel.CorpId, postModel.Secret, requestMessage.FromUserName)); var sUserid = (string)jsonObj["userid"]; Debug.WriteLine(sUserid); if (sUserid == "1") { sUserid = "330421199506040511"; } var sSelect = "SELECT * FROM 考勤期间 AS T1 INNER JOIN 考勤汇总_明细 AS T2 ON T1.ExcelServerRCID=T2.ExcelServerRCID INNER JOIN (SELECT 人员编号 as 'id' FROM 人员档案 AS T1 WHERE T1.证件号码 = '{0}') AS T3 ON T3.id = T2.人员编号 WHERE T1.年=SUBSTRING('{1}',1,4) AND T1.月=SUBSTRING('{1}',5,2)"; sSelect = string.Format(sSelect, sUserid, requestMessage.Content); var ds = SqlHelper.ExecuteDataset(QyWeixin.QyEntry.sqlConnectstr, CommandType.Text, sSelect); if (ds.Tables[0].Rows.Count == 0) { Debug.WriteLine(sSelect); responseMessage = ResponseMessage.CreateFromRequestMessage(requestMessage, QY.Enums.ResponseType.Text); responseMessage.Content = "查询不到关于你的数据。"; return(responseMessage); } var sID = (string)ds.Tables[0].Rows[0]["id"]; var sName = (string)ds.Tables[0].Rows[0]["姓名"]; var sStardard = Math.Round((decimal)ds.Tables[0].Rows[0]["标准工时"], 1); var sReal = Math.Round((decimal)ds.Tables[0].Rows[0]["实出勤"], 1); var sJiaban = sReal - sStardard > 0 ? sReal - sStardard : 0; var sQuanqin = (string)ds.Tables[0].Rows[0]["是否全勤"]; var sDescription = "{0},该月标准工时{1}小时,您实际出勤{2}小时,其中{3}小时将作为加班工时为您结算加班工资。全勤:{4}"; var sUrl = "http://www.skyflag.com:6018/kaoqin.aspx?id={0}&date={1}&name={2}"; var sDate = requestMessage.Content; sUrl = string.Format(sUrl, sID, sDate, sName); sDescription = string.Format(sDescription, sName, sStardard, sReal, sJiaban, sQuanqin); Debug.WriteLine(sUserid); Debug.WriteLine(sSelect); responseMessage = ResponseMessage.CreateFromRequestMessage(requestMessage, QY.Enums.ResponseType.News); var art1 = new ResponseMessageInnerType.Article { Title = requestMessage.Content + "考勤数据", Description = sDescription, Url = sUrl, PicUrl = "http://www.skyflag.com:6018/img/salary.jpg" }; responseMessage.Articles.Add(art1); return(responseMessage); }
public override IResponseMessage OnEventRequest(IRequestMessage requestMessage) { IResponseMessage responseMessage = null; switch (requestMessage.EventKey) { case "考勤数据": { var jsonObj = JObject.Parse(JsonSend.GetQyUserinfo(postModel.CorpId, postModel.Secret, requestMessage.FromUserName)); responseMessage = ResponseMessage.CreateFromRequestMessage(requestMessage, QY.Enums.ResponseType.Text); var sSelect = "SELECT DISTINCT TOP 1 CAST(T1.年 AS nvarchar) + CASE WHEN T1.月<10 THEN '0' ELSE '' END + CAST(T1.月 AS nvarchar) AS 日期 FROM 考勤期间 AS T1 INNER JOIN 考勤明细 AS T2 ON T1.ExcelServerRCID = T2.ExcelServerRCID INNER JOIN (SELECT 人员编号 as 'id' FROM 人员档案 AS T1 WHERE T1.证件号码 = '330421198112112514') AS T3 ON T2.人员编号 = T3.id ORDER BY 日期 DESC"; var dr = SqlHelper.ExecuteReader(QyWeixin.QyEntry.sqlConnectstr, CommandType.Text, sSelect); var s = ""; while (dr.Read()) { s += dr["日期"]; } responseMessage.Content = string.Format("欢迎使用企业号,{0}\n您现在最新可查询的考勤批次是:{1}\n请在输入框中以如上格式输入您要查询的考勤批次", jsonObj["name"], s); //var biz = new JsonMessage //{ // touser = requestMessage.FromUserName, // msgtype = "text", // agentid = requestMessage.AgentID.ToString(), // text = new JsonMessageInnerType.textcontent { content = responseMessage.Content }, // safe = 0 //}; //var error = JsonSend.SendQyMessage(postModel.CorpId, postModel.Secret, XLH.SerializeJsonToString(biz), System.Text.Encoding.UTF8); } break; case "手动打卡": { var jsonObj = JObject.Parse(JsonSend.GetQyUserinfo(postModel.CorpId, postModel.Secret, requestMessage.FromUserName)); Debug.WriteLine(jsonObj["department"].ToString()); var jsonArray = (JArray)jsonObj["department"]; foreach (var item in jsonArray) { if ((int)item != 2 && (int)item != 6) { responseMessage = ResponseMessage.CreateFromRequestMessage(requestMessage, QY.Enums.ResponseType.Text); responseMessage.Content = "你没有权限操作,请联系负责人补打。"; } else { responseMessage = ResponseMessage.CreateFromRequestMessage(requestMessage, QY.Enums.ResponseType.News); string surl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx87c90793c5376e09&redirect_uri={0}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect"; string encodeurl = System.Web.HttpUtility.UrlEncode("http://senderwood.vicp.net/clock.aspx"); Debug.WriteLine(string.Format(surl, encodeurl)); responseMessage.Articles.Add(new ResponseMessageInnerType.Article { Url = "http://pinhuadashi.ticp.net/timerecords.html", Description = "点击进行操作", Title = "手动打卡" }); } } } break; } return(responseMessage); }
private void FirstConnectSync() //채티방 처음 입장 시 업로드, 다운로드, 삭제 동기화 함수 { while (true) { int firstSyncErr = 0; cnt = 0; try { DirectoryInfo directoryInfo = new DirectoryInfo(cloudDirPath); ////////////////////////파일 목록 전송 시작//////////////////////// JsonObjectCollection jsonObject = new JsonObjectCollection(); JsonObjectCollection filesObject = new JsonObjectCollection("files"); jsonObject.Add(new JsonStringValue("userId", UserInfo.userId)); jsonObject.Add(new JsonStringValue("roomId", roomId)); foreach (var file in directoryInfo.GetFiles()) { fileLastWriteTime = file.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss"); fileLength = file.Length.ToString(); if (file.Name.Equals("Thumbs.db") || Regex.IsMatch(file.Extension, @"\.db", RegexOptions.IgnoreCase)) { Debug.WriteLine("<Chat_Form> .db OR Thumbs.db"); } else { JsonObjectCollection filesInfoObject = new JsonObjectCollection(cnt.ToString()); filesInfoObject.Add(new JsonStringValue("fileName", file.Name)); filesInfoObject.Add(new JsonStringValue("fileExtension", file.Extension)); filesInfoObject.Add(new JsonStringValue("fileLastWriteTime", fileLastWriteTime)); filesInfoObject.Add(new JsonStringValue("fileLength", fileLength)); filesObject.Add(filesInfoObject); cnt++; } } jsonObject.Add(new JsonStringValue("length", cnt.ToString())); jsonObject.Add(filesObject); jsonString = jsonObject.ToString(); JsonSend jsonSend = new JsonSend(); jsonResult = jsonSend.JsonSendToServer(jsonString, 1); Debug.WriteLine("<Chat_Form> upload json send : " + jsonString); Debug.WriteLine("<Chat_Form> upload json Result : " + jsonResult); ////////////////////////파일 목록 전송 완료//////////////////////// ////////////////////////서버에 없는 파일 전송 시작//////////////////////// JObject jObject = JObject.Parse(jsonResult); NameValueCollection updateFileList = new NameValueCollection(); jsonLength = jObject["uploadSize"].ToString(); fileListLength = Convert.ToInt32(jsonLength); jsonDownloadLength = jObject["downloadSize"].ToString(); jsonDeleteLength = jObject["deleteListSize"].ToString(); downloadListLength = Convert.ToInt32(jsonDownloadLength); deleteListLength = Convert.ToInt32(jsonDeleteLength); ////////////////////////삭제 파일 리스트 로컬에서 삭제//////////////////// if (deleteListLength > 0) { NameValueCollection deleteFileList = new NameValueCollection(); for (int i = 0; i < deleteListLength; i++) { updateFileList.Add(Convert.ToString(i), jObject["deleteList"][i].ToString()); } while (true) { try { for (int i = 0; i < deleteListLength; i++) { File.Delete(cloudDirPath + updateFileList[i]); } Debug.WriteLine("파일 삭제 리스트 삭제 완료"); deleteErrCnt = 0; break; } catch (Exception ex) { deleteErrCnt++; Debug.WriteLine("파일 삭제 리스트 삭제 오류 : " + ex); if (deleteErrCnt == 5) { deleteErrCnt = 0; Debug.WriteLine("deleteErrCnt==5"); break; } throw; } } } ////////////////////////삭제 파일 리스트 로컬에서 삭제 완료//////////////////// ////////////////////////서버에 없는 파일 전송 시작//////////////////// for (int i = 0; i < fileListLength; i++) { updateFileList.Add(Convert.ToString(i), jObject["uploadList"][i].ToString()); } for (int i = 0; i < fileListLength; i++) { updateFileName = cloudDirPath + updateFileList[i]; string eachFileName = updateFileList[i]; Debug.WriteLine("<Chat_Form> updateFileName : " + updateFileName); fileInfo = new FileInfo(updateFileName); fileExtension = Path.GetExtension(updateFileName); if (Regex.IsMatch(fileExtension, @"\.lnk", RegexOptions.IgnoreCase)) { MessageBox.Show(".lnk 파일은 동기화 할 수 없습니다."); } else if (Regex.IsMatch(fileExtension, @"\.tmp", RegexOptions.IgnoreCase) || fileInfo.Name.Contains("~$")) { Debug.WriteLine("<Chat_Form> 임시파일 전송 불가 : " + fileInfo.Name); } else if (fileInfo.Name.Contains("~$") && Regex.IsMatch(fileExtension, @"\.Cell", RegexOptions.IgnoreCase)) { Debug.WriteLine("<Chat_Form> 임시파일 전송 불가 : " + fileInfo.Name); } else if (fileInfo.Name.Contains("~$")) { Debug.WriteLine("<Chat_Form> 임시파일 전송 불가 : " + fileInfo.Name); } else { while (true) { try { fileLastWriteTime = fileInfo.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss"); length = fileInfo.Length; fileName = fileInfo.Name; fileStream = File.Open(updateFileName, FileMode.Open, FileAccess.Read); fileStream.Close(); break; } catch (Exception ex) { if (openFileErr == 5) { Debug.WriteLine("openFileErr == 5"); break; } else if (ex.ToString().Contains("System.IO.FileNotFoundException")) { Debug.WriteLine("파일을 찾을 수 없습니다."); break; } Debug.WriteLine("열려 있는 파일을 닫아야합니다."); openFileErr++; Thread.Sleep(2000); } } Watcher.SendFileUpload(updateFileName, fileLastWriteTime, length, fileName, fileExtension); simpleData.runThread(0, eachFileName); // 파일 다운로드 소켓 명령 } } Debug.WriteLine("-------------<Chat_Form> 파일 전송 완료----------------"); ////////////////////////서버에 없는 파일 전송 완료//////////////////////// ////////////////////////서버에 있고 공유 폴더에 없는 파일 목록 전송 시작//////////////////////// if (downloadListLength > 0) { JsonObjectCollection jsonDownloadObject = new JsonObjectCollection(); JsonArrayCollection jsonArrayCollection = new JsonArrayCollection("uploadList"); jsonDownloadObject.Add(new JsonStringValue("userId", UserInfo.userId)); jsonDownloadObject.Add(new JsonStringValue("roomId", roomId)); for (int i = 0; i < downloadListLength; i++) { jsonArrayCollection.Add(new JsonStringValue(null, jObject["downloadList"][i].ToString())); } jsonDownloadObject.Add(jsonArrayCollection); jsonString = jsonDownloadObject.ToString(); jsonResult = jsonSend.JsonSendToServer(jsonString, 2); Debug.WriteLine("<Chat_Form> download json send : " + jsonString); Debug.WriteLine("<Chat_Form> download json response : " + jsonResult); ////////////////////////서버로부터 zip파일 전송 받기 시작//////////////////////// if (jsonResult.Equals("created zip file")) { ZipFileDownload(); } ////////////////////////서버로부터 zip파일 전송 받기 완료//////////////////////// } break; } catch (Exception ex) { firstSyncErr++; Debug.WriteLine("FirstSync Err : " + ex); Thread.Sleep(2000); if (firstSyncErr == 5) { Debug.WriteLine("firstSyncErr==5"); break; } } break; } }
public static void ZipFileDownload() //알집 파일 다운로드, 압축 해체 및 삭제 함수 { zipFileName = JsonSend.zipPath; Debug.WriteLine(zipFileName); while (true) { int zipFileStreamErr = 0; try { fileStream = File.Open(zipFileName, FileMode.Open, FileAccess.Read); fileStream.Close(); break; } catch { zipFileStreamErr++; Thread.Sleep(2000); Debug.WriteLine("Zip File 사용중 : " + zipFileStreamErr); if (zipFileStreamErr == 5) { Debug.WriteLine("zipFileStreamErr==5"); zipFileStreamErr = 0; break; } } } NameValueCollection zipFileList = new NameValueCollection(); while (true) { try { using (ZipArchive zipFile = ZipFile.OpenRead(zipFileName)) { zipFileCount = zipFile.Entries.Count; Debug.WriteLine("zipFileCount : " + zipFileCount); foreach (ZipArchiveEntry entry in zipFile.Entries) { Debug.WriteLine("ENTRY NAME : " + entry.FullName); entry.ExtractToFile(cloudDirPath + entry.FullName, true); byte[] buffer = File.ReadAllBytes(cloudDirPath + entry.FullName); Key.BCapsulation(UserInfo.Key, buffer); File.WriteAllBytes(cloudDirPath + entry.FullName, buffer); zipFileList.Add(Convert.ToString(entry), entry.FullName); Debug.WriteLine("zipFileList : " + zipFileList[Convert.ToString(entry)]); } Debug.WriteLine("압축 해제 완료"); zipErrCnt = 0; break; } } catch (Exception ex) { zipErrCnt++; Debug.WriteLine("압축 해제 오류 : " + ex); Thread.Sleep(2000); if (zipErrCnt == 5) { zipErrCnt = 0; Debug.WriteLine("zipErrCnt==5"); break; } } } JsonObjectCollection jsonDownloadFinishObject = new JsonObjectCollection(); JsonArrayCollection jsonArrayCollection = new JsonArrayCollection("uploadList"); jsonDownloadFinishObject.Add(new JsonStringValue("userId", UserInfo.userId)); jsonDownloadFinishObject.Add(new JsonStringValue("roomId", roomId)); jsonDownloadFinishObject.Add(new JsonStringValue("result", "true")); for (int i = 0; i < zipFileCount; i++) { Debug.WriteLine("zipFileList : " + zipFileList[i]); jsonArrayCollection.Add(new JsonStringValue(null, zipFileList[i])); } jsonDownloadFinishObject.Add(jsonArrayCollection); jsonString = jsonDownloadFinishObject.ToString(); Debug.WriteLine("압축 해제 완료 JSON 전송 : " + jsonString); JsonSend jsonSend = new JsonSend(); jsonResult = jsonSend.JsonSendToServer(jsonString, 3); Debug.WriteLine("압축 해제 완료 JSON RESULT : " + jsonResult); JObject jObject = JObject.Parse(jsonResult); NameValueCollection fileListName = new NameValueCollection(); NameValueCollection lastWriteTime = new NameValueCollection(); jsonLength = jObject["length"].ToString(); fileListLength = Convert.ToInt32(jsonLength); for (int i = 0; i < fileListLength; i++) { Debug.WriteLine("JSON FileName : " + jObject[Convert.ToString(i)]["FileName"].ToString()); Debug.WriteLine("JSON Time : " + jObject[Convert.ToString(i)]["Time"].ToString()); fileListName.Add(Convert.ToString(i), jObject[Convert.ToString(i)]["FileName"].ToString()); lastWriteTime.Add(Convert.ToString(i), jObject[Convert.ToString(i)]["Time"].ToString()); } DateTime dateTime = new DateTime(); while (true) { try { for (int i = 0; i < fileListLength; i++) { dateTime = Convert.ToDateTime(lastWriteTime[i]); File.SetLastWriteTime(cloudDirPath + fileListName[i], dateTime); } zipErrCnt = 0; break; } catch (Exception ex) { zipErrCnt++; Debug.WriteLine("파일 수정 날짜 갱신 오류 : " + ex); Thread.Sleep(2000); if (zipErrCnt == 5) { zipErrCnt = 0; Debug.WriteLine("zipErrCnt==5"); break; } } } try { FileInfo fileDel = new FileInfo(zipFileName); fileDel.Delete(); Debug.WriteLine("압축 파일 삭제 완료 : " + zipFileName); } catch (Exception ex) { Debug.WriteLine("압축 파일 삭제 Error : " + ex); } }
public override IResponseMessage OnEventRequest(IRequestMessage RequestMessage) { if (RequestMessage.Event == "click") { if (RequestMessage.EventKey == "最近出库") { var dict1 = new Dictionary <string, string>(); var query1 = "SELECT TOP 3A.客户 as 单位,A.送货单号 as 单号,A.业务描述 as 类型, A.送货日期 as 日期 FROM 发货 A ORDER BY A.送货日期 DESC, A.客户编号 ASC"; var query2 = @"SELECT A.送货单号 as 单号,B.编号,B.描述,B.PCS,B.工艺,B.木种 FROM (SELECT TOP 3 * FROM 发货 A ORDER BY A.送货日期 DESC, A.客户编号 ASC) A INNER JOIN 发货_DETAIL AS B ON A.ExcelServerRCID = B.ExcelServerRCID ORDER BY A.送货日期 DESC ,A.客户编号 ASC ,B.编号 ASC"; var constr = "server=www.skyflag.com,6019;database=pinhua;uid=sa;pwd=benny0922"; var reader1 = SqlHelper.ExecuteReader(constr, CommandType.Text, query1); var reader2 = SqlHelper.ExecuteReader(constr, CommandType.Text, query2); while (reader1.Read()) { for (var i = 0; i != reader1.FieldCount; i++) { var sKey = reader1["单号"].ToString(); if (!dict1.ContainsKey(sKey)) { dict1.Add(sKey, reader1.GetName(i) + ":" + reader1[i].ToString() + "\n"); } else { dict1[sKey] += reader1.GetName(i) + ":" + reader1[i].ToString() + "\n"; } } dict1[reader1["单号"].ToString()] += "━━━━━━━━━━━\n"; } while (reader2.Read()) { var sKey = reader2["单号"].ToString(); if (dict1.ContainsKey(sKey)) { dict1[sKey] += "◆" + "\n"; for (var i = 1; i != reader2.FieldCount; i++) { dict1[sKey] += reader2.GetName(i) + ":" + reader2[i].ToString() + "\n"; } } } foreach (string s in dict1.Keys) { var biz = new JsonMessage { touser = RequestMessage.FromUserName, msgtype = "text", agentid = RequestMessage.AgentID.ToString(), text = new JsonMessageInnerType.textcontent { content = dict1[s] }, safe = 0 }; var error = JsonSend.SendQyMessage(postModel.CorpId, postModel.Secret, XLH.SerializeJsonToString(biz), Encoding.UTF8); Debug.Write(error); } } } return(null); }
// 감시 폴더 내부 변경 event private void Watcher_Created(object sender, FileSystemEventArgs e) { fileLocation = e.FullPath; fileInfo = new FileInfo(fileLocation); string createdFileExtension = Path.GetExtension(fileLocation); if (Regex.IsMatch(createdFileExtension, @"\.lnk", RegexOptions.IgnoreCase)) { MessageBox.Show(".lnk 파일은 동기화 할 수 없습니다."); } else if (Regex.IsMatch(createdFileExtension, @"\.tmp", RegexOptions.IgnoreCase)) { Debug.WriteLine("<Watcher> 임시파일 생성 : " + fileInfo.Name); } else if (fileInfo.Name.Contains("~$") && Regex.IsMatch(createdFileExtension, @"\.Cell", RegexOptions.IgnoreCase)) { Debug.WriteLine("<Watcher> 임시파일 생성 : " + fileInfo.Name); } else if (fileInfo.Name.Contains("~$")) { Debug.WriteLine("<Watcher> 임시파일 생성 : " + fileInfo.Name); } else if (createdFileExtension.Equals("")) { Debug.WriteLine("<Watcher> 임시파일 생성 : " + fileInfo.Name); } else if (Regex.IsMatch(createdFileExtension, @"\.db", RegexOptions.IgnoreCase)) { Debug.WriteLine("<Watcher> .db 파일 생성 : " + fileInfo.Name); } else if (fileInfo.Name.Equals("Thumbs.db")) { Debug.WriteLine("<Watcher> 임시파일 생성 : " + fileInfo.Name); } else { int cnt = 0; while (true) { try { fileLastWriteTime = fileInfo.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss"); fileLength = fileInfo.Length; fileName = fileInfo.Name; fileStream = File.Open(fileLocation, FileMode.Open, FileAccess.Read); fileStream.Close(); fileOpen = false; break; } catch (Exception ex) { cnt++; if (ex.ToString().Contains("System.IO.FileNotFoundException")) { Debug.WriteLine("파일을 찾을 수 없습니다."); break; } Debug.WriteLine("Watcher Created Upload Error : " + ex); Thread.Sleep(3000); fileOpen = true; if (cnt == 5) { Debug.WriteLine("Watcher Created Upload Error CNT==5"); break; } } } if (fileOpen == false) { JsonObjectCollection jsonObject = new JsonObjectCollection(); jsonObject.Add(new JsonStringValue("roomId", roomId)); jsonObject.Add(new JsonStringValue("fileName", fileName)); jsonObject.Add(new JsonStringValue("fileLastWriteTime", fileLastWriteTime)); jsonString = jsonObject.ToString(); JsonSend jsonSend = new JsonSend(); jsonResult = jsonSend.JsonSendToServer(jsonString, 4); if (jsonResult == null) { Debug.WriteLine("<Watcher> created jsonResult Err NULL : " + jsonResult); } else if (jsonResult.Equals("true")) { Debug.WriteLine("<Watcher> created json send : " + jsonString); Debug.WriteLine("<Watcher>제이슨 서버 존재 유무 판단 created json Result : " + jsonResult); SendFileUpload(fileLocation, fileLastWriteTime, fileLength, fileName, createdFileExtension); Debug.WriteLine("<Watcher> 생성 : " + fileName); simpleData.runThread(0, fileName); //chat_Form.sendSocket("[파일 다운로드 명령]/" + fileName+"/"); System.Timers.Timer timer = new System.Timers.Timer(); ((FileSystemWatcher)sender).Changed -= Watcher_Changed; timer.Interval = 1000; timer.Elapsed += new ElapsedEventHandler(EventTimer); timer.Start(); } else { Debug.WriteLine("<Watcher> created json send : " + jsonString); Debug.WriteLine("<Watcher> created json Result : " + jsonResult); } } } }
private void Watcher_Changed(object sender, FileSystemEventArgs e) { string changedFileExtension; fileLocation = e.FullPath; fileInfo = new FileInfo(fileLocation); System.Timers.Timer timer = new System.Timers.Timer(); ((FileSystemWatcher)sender).Changed -= Watcher_Changed; timer.Interval = 1000; timer.Elapsed += new ElapsedEventHandler(EventTimer); timer.Start(); try { changedFileExtension = Path.GetExtension(fileLocation); if (Regex.IsMatch(changedFileExtension, @"\.lnk", RegexOptions.IgnoreCase)) { Debug.WriteLine("<Watcher> .lnk 파일 변경 : " + fileInfo.Name); } else if (Regex.IsMatch(changedFileExtension, @"\.tmp", RegexOptions.IgnoreCase)) { Debug.WriteLine("<Watcher> 임시파일 변경 : " + fileInfo.Name); } else if (fileInfo.Name.Contains("~$")) { Debug.WriteLine("<Watcher> 임시파일 변경 : " + fileInfo.Name); } else if (changedFileExtension.Equals("")) { Debug.WriteLine("<Watcher> 임시파일 변경 : " + fileInfo.Name); } else if (Regex.IsMatch(changedFileExtension, @"\.db", RegexOptions.IgnoreCase)) { Debug.WriteLine("<Watcher> .db 파일 변경 : " + fileInfo.Name); } else if (fileInfo.Name.Equals("Thumbs.db")) { Debug.WriteLine("<Watcher> 임시파일 변경 : " + fileInfo.Name); } else { fileLastWriteTime = fileInfo.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss"); fileLength = fileInfo.Length; fileName = fileInfo.Name; JsonObjectCollection jsonObject = new JsonObjectCollection(); jsonObject.Add(new JsonStringValue("roomId", roomId)); jsonObject.Add(new JsonStringValue("fileName", fileName)); jsonObject.Add(new JsonStringValue("fileLastWriteTime", fileLastWriteTime)); jsonObject.Add(new JsonStringValue("fileSize", fileLength.ToString())); jsonString = jsonObject.ToString(); JsonSend jsonSend = new JsonSend(); jsonResult = jsonSend.JsonSendToServer(jsonString, 5); if (jsonResult == null) { Debug.WriteLine("<Watcher> 변경 jsonResult Err NULL : " + jsonResult); } else if (jsonResult.Equals("true")) { SendFileUpload(fileLocation, fileLastWriteTime, fileLength, fileName, changedFileExtension); Debug.WriteLine("<Watcher> 변경 : " + e.Name); Debug.WriteLine("<Watcher> 변경 json send : " + jsonString); Debug.WriteLine("<Watcher> 변경 json Result : " + jsonResult); simpleData.runThread(3, fileName); //chat_Form.sendSocket("[파일 변경 명령]/" + fileName); } else { Debug.WriteLine("<Watcher> 변경 json send : " + jsonString); Debug.WriteLine("<Watcher> 변경 json Result : " + jsonResult); } } } catch (Exception exception) { Debug.WriteLine("<Watcher> Changed Error : " + exception); } }