コード例 #1
0
        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);
            }
        }
コード例 #2
0
ファイル: CustomerTBVerify.cs プロジェクト: radtek/EUGV2
        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();
        }
コード例 #3
0
ファイル: RemoteOpenLogic.cs プロジェクト: radtek/EUG
        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);
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: ServerServiceImpl.cs プロジェクト: radtek/EUG
        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);
        }