void frmMain_RemoteOpenBoxEvent(ServerCallback2 sc) { int boxcode = -1; try { boxcode = Convert.ToInt32(sc.Boxnumber); } catch (Exception err) { CLog4net.LogError("frmMain_RemoteOpenBoxEvent " + sc.Boxnumber + " :" + err); } bool issuccess = cameraService.TakePicture(); CLog4net.LogInfo("拍照是否成功:" + issuccess.ToString()); //开箱 Box box = boxsManager.Find(boxcode); if (box.Open()) { //柜子地址 courierNum = box.CoordinateInfo.X.ToString() + box.CoordinateInfo.Y.ToString(); //跳转下一页 NavGetPackageSuccessState(); string s = String.Format("取件成功,您的包裹在{0}号箱,请关闭柜门,谢谢", courierNum); voiceService.BroadcastOnce(s); RemoteOpenLogic.GetInstance().Response(sc.Code, true, this.about); CLog4net.LogInfo("取件成功"); boxsManager.ClearBox(boxcode); } else { voiceService.BroadcastOnce("开柜失败"); returnSuccess1.errorMessage("如果储物柜无法打开,请联系管理员"); CLog4net.LogInfo("如果储物柜无法打开,请联系管理员"); RemoteOpenLogic.GetInstance().Response(sc.Code, false, this.about); } Package package = packageManager.TakePackage(boxcode); if (package != null) { ////拍照 tempPackage = package; if (package.Place.Code != box.Code) { CLog4net.LogError("服务器与客户端查询箱子不一致,服务器boxcode:" + sc.Boxnumber + " 客户端boxcode:" + package.Place.Code + " 快递号:" + package.SN); } } else { CLog4net.LogInfo("未找到您的包裹:" + boxcode); } }
void frmMain_RemoteOpenBoxEvent(ServerCallback2 sc) { int boxcode = -1; try { boxcode = Convert.ToInt32(sc.Boxnumber); } catch (Exception err) { CLog4net.LogError("frmMain_RemoteOpenBoxEvent " + sc.Boxnumber + " :" + err); return; } bool issuccess = frmMain.cameraService.TakePicture(); CLog4net.LogInfo("拍照是否成功:" + issuccess.ToString()); //开箱 this.box = frmMain.boxsManager.Find(boxcode); if (box.Open()) { RemoteOpenLogic.GetInstance().Response(sc.Code, true, frmMain.about); CLog4net.LogInfo("取件成功"); frmMain.boxsManager.ClearBox(boxcode); } else { frmMain.voiceService.BroadcastOnce("开柜失败"); frmMain.ShowSystemPromptMessage("如果储物柜无法打开,请联系管理员"); CLog4net.LogInfo("如果储物柜无法打开,请联系管理员"); RemoteOpenLogic.GetInstance().Response(sc.Code, false, frmMain.about); return; } Package package = frmMain.packageManager.TakePackage(boxcode); if (package != null) { if (package.Place.Code != box.Code) { CLog4net.LogError("服务器与客户端查询箱子不一致,服务器boxcode:" + sc.Boxnumber + " 客户端boxcode:" + package.Place.Code + " 快递号:" + package.SN); } } else { CLog4net.LogInfo("未找到您的包裹:" + boxcode); } SceneTransitEvent(); }
private void RemoteOpenListen(object state) { ServerCallback2 sc = this.server.OpenBoxCmdListener(this.about); if (!sc.HasOpenOrder) { return; } this.remoteLinstener.Change(Timeout.Infinite, Timeout.Infinite); if (this.RemoteOpenBoxEvent != null) { this.RemoteOpenBoxEvent(sc); } }
public bool ResponseOpenBoxCmd(string code, bool isOpen, About about) { ServerCallback2 sc = new ServerCallback2(); string loginUrl = about.ServerUrl; Encoding encoding = Encoding.GetEncoding("gb2312"); IDictionary <string, string> parameters = new Dictionary <string, string>(); string datetime = UnixTime.ConvertDateTimeToUnixTime(DateTime.Now).ToString(); string orderstatus = isOpen == true ? "boxopened" : "error"; string token = CMD5.UserMd5(code) + CMD5.UserMd5(datetime); parameters.Add("token", CMD5.UserMd5(token)); parameters.Add("code", code); parameters.Add("orderstatus", orderstatus); parameters.Add("datetime", datetime); parameters.Add("c", "Pack"); parameters.Add("a", "remoteOpenBoxFeedback"); try { string result = ""; using (HttpWebResponse response = HttpWebResponseUtility.CreatePostHttpResponse(loginUrl, parameters, timeoutMSecond, null, encoding, null)) { string cookieString = response.Headers["Set-Cookie"]; using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8)) { result = reader.ReadToEnd(); } } StringReader sr = new StringReader(result); JsonSerializer serializer = new JsonSerializer(); try { sc = (ServerCallback2)serializer.Deserialize(new JsonTextReader(sr), typeof(ServerCallback2)); } catch (Exception e) { CLog4net.LogError(e); } CLog4net.LogInfo("服务器连接:" + result); } catch (Exception e) { CLog4net.LogError("ResponseOpenBoxCmd" + e); } return(sc.Received); }
public ServerCallback2 OpenBoxCmdListener(About about) { ServerCallback2 sc = new ServerCallback2(); string loginUrl = about.ServerUrl; Encoding encoding = Encoding.GetEncoding("gb2312"); IDictionary <string, string> parameters = new Dictionary <string, string>(); string datetime = UnixTime.ConvertDateTimeToUnixTime(DateTime.Now).ToString(); string token = CMD5.UserMd5(about.CabinetCode) + CMD5.UserMd5(datetime); parameters.Add("token", CMD5.UserMd5(token)); parameters.Add("cabinetCode", about.CabinetCode); parameters.Add("datetime", datetime); parameters.Add("c", "Pack"); parameters.Add("a", "remoteOpenBox"); try { HttpWebResponse response = HttpWebResponseUtility.CreatePostHttpResponse(loginUrl, parameters, timeoutMSecond, null, encoding, null); string cookieString = response.Headers["Set-Cookie"]; string result = ""; using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8)) { result = reader.ReadToEnd(); } StringReader sr = new StringReader(result); JsonSerializer serializer = new JsonSerializer(); try { sc = (ServerCallback2)serializer.Deserialize(new JsonTextReader(sr), typeof(ServerCallback2)); } catch (Exception e) { CLog4net.LogError(e.ToString()); } CLog4net.LogInfo("服务器连接:" + result); } catch (Exception e) { CLog4net.LogError("OpenBoxCmdListener" + e); } return(sc); }