private void frmSendSms_Load(object sender, EventArgs e)
        {
            //初始化
            authSmsEndPoint = INIAdapter.ReadValue(Common.INI_SECTION_WEB, Common.INI_KEY_AUTHSMS_END_POINT, Common.INI_FILE_PATH);
            smsEndPoint     = INIAdapter.ReadValue(Common.INI_SECTION_WEB, Common.INI_KEY_SMS_END_POINT, Common.INI_FILE_PATH);
            txtDictionary   = BaseUtility.StrToDictionary(INIAdapter.ReadValue(Common.INI_SECTION_LOCAL, Common.INI_KEY_TXT_SMS_SETTING_LAST, Common.INI_FILE_PATH), '&');
            orderDictionary = BaseUtility.StrToDictionary(INIAdapter.ReadValue(Common.INI_SECTION_LOCAL, Common.INI_KEY_ORDER_SMS_SETTING_LAST, Common.INI_FILE_PATH), '&');

            smsRetCodeDic = BaseUtility.GetEnumDesc(new SmsStatusEnum());

            //开始执行
            _tickTimer          = new System.Timers.Timer(5 * 1000);
            _tickTimer.Elapsed += new System.Timers.ElapsedEventHandler(delegate(object source, System.Timers.ElapsedEventArgs ee)
            {
                _tickTimer.Enabled = false;
                HttpUtility.getAsyncTo(authSmsEndPoint + "/GetCityDeployNodes", null, null, new { ApplicationId = "CS001" }.ToStringObjectDictionary(), (ret, res) =>
                {
                    if ((bool)ret.Success)
                    {
                        string url;
                        foreach (var item in ret.rows)
                        {
                            url = (string)item.AccessPoint;//"http://localhost/SmartLife.CertManage.SmsServices";//
                            HttpUtility.postSyncAsJSON(url.Replace("115.236.175.110", "localhost") + "/Pub/SmsSendService/QueuedSendSms", null, new { Status = "0" }.ToStringObjectDictionary(), new { ApplicationId = "CS001", Token = item.Token, NodeId = item.NodeId }.ToStringObjectDictionary(), (smsret, smsres) =>
                            {
                                if ((bool)smsret.Success)
                                {
                                    QueuedSendSms(smsret.rows, url, item.Token, item.NodeId);
                                }
                            });
                        }
                        this.UIInvoke(() =>
                        {
                            if (sb_retStatus.Length > 0)
                            {
                                if (this.tb_SendSms.Lines.Length > 1000)
                                {
                                    int iline       = tb_SendSms.GetFirstCharIndexFromLine(1);
                                    tb_SendSms.Text = tb_SendSms.Text.Remove(0, iline);
                                }
                                this.tb_SendSms.AppendText(sb_retStatus.ToString());
                                sb_retStatus.Remove(0, sb_retStatus.Length);
                            }
                        });
                    }
                });
                _tickTimer.Enabled = true;
            });
            //到达时间的时候执行事件;
            _tickTimer.AutoReset = true; //设置是执行一次(false)还是一直执行(true);
            _tickTimer.Enabled   = true; //是否执行System.Timers.Timer.Elapsed事件;
        }
Esempio n. 2
0
        private void frmSetting_Load(object sender, EventArgs e)
        {
            txtAuthEndPoint.Text    = INIAdapter.ReadValue(Common.INI_SECTION_WEB, Common.INI_KEY_AUTH_END_POINT, Common.INI_FILE_PATH);
            txtAuthSmsEndPoint.Text = INIAdapter.ReadValue(Common.INI_SECTION_WEB, Common.INI_KEY_AUTHSMS_END_POINT, Common.INI_FILE_PATH);
            tb_SmsEndPoint.Text     = INIAdapter.ReadValue(Common.INI_SECTION_WEB, Common.INI_KEY_SMS_END_POINT, Common.INI_FILE_PATH);
            string txtSmsSetting   = INIAdapter.ReadValue(Common.INI_SECTION_LOCAL, Common.INI_KEY_TXT_SMS_SETTING_LAST, Common.INI_FILE_PATH);
            string orderSmsSetting = INIAdapter.ReadValue(Common.INI_SECTION_LOCAL, Common.INI_KEY_ORDER_SMS_SETTING_LAST, Common.INI_FILE_PATH);

            Dictionary <string, string> dict = BaseUtility.StrToDictionary(txtSmsSetting, '&');

            if (dict.Count > 2)
            {
                tb_Txt_SpCode.Text    = dict["SpCode"];
                tb_Txt_LoginName.Text = dict["LoginName"];
                tb_Txt_Password.Text  = BaseUtility.DecryptDES(dict["Password"]);
            }
            dict = BaseUtility.StrToDictionary(orderSmsSetting, '&');
            if (dict.Count > 2)
            {
                tb_Digital_SpCode.Text    = dict["SpCode"];
                tb_Digital_LoginName.Text = dict["LoginName"];
                tb_Digital_Password.Text  = BaseUtility.DecryptDES(dict["Password"]);
            }
        }
        private void SendSms(List <SmsSendInfo> smsList, string url, object token, object NodeId)
        {
            //文本提交的参数
            IDictionary <string, object> txtparms = new
            {
                SpCode    = txtDictionary["SpCode"],
                LoginName = txtDictionary["LoginName"],
                Password  = BaseUtility.DecryptDES(txtDictionary["Password"]),
                f         = "1",
            }.ToStringObjectDictionary();
            //命令提交的参数
            IDictionary <string, object> orderparms = new
            {
                SpCode    = orderDictionary["SpCode"],
                LoginName = orderDictionary["LoginName"],
                Password  = BaseUtility.DecryptDES(orderDictionary["Password"]),
                f         = "1",
            }.ToStringObjectDictionary();

            int    status = 0;
            string error  = "0";
            IDictionary <string, object> body;

            foreach (var key in smsList)
            {
                if (key.SendCatalog == "0")
                {
                    body = key.ToStringObjectDictionary(false).Union2(txtparms);
                }
                else
                {
                    body = key.ToStringObjectDictionary(false).Union2(orderparms);
                }

                HttpUtility.postSyncAsForm(smsEndPoint + "/Send.do", Encoding.Default, body, null, (txtret, txtres) =>
                {
                    Dictionary <string, string> retdict = BaseUtility.StrToDictionary(txtret, '&');

                    if (retdict["result"] == "0")
                    {
                        status = 1;
                    }
                    else
                    {
                        status = 2;
                    }
                    error = retdict["result"];
                    //存在发送失败的号码,先更新好发送成功的号码
                    if (retdict.ContainsKey("faillist"))
                    {
                        status = 1;
                        error  = "0";
                    }
                    UpdateSmsSendStatus(new { SendResult = error, Status = status, BatchNum = key.SerialNumber }.ToStringObjectDictionary(), url, token, NodeId);
                    //再更新发送失败的号码
                    if (retdict.ContainsKey("faillist"))
                    {
                        status            = 2;
                        error             = retdict["result"];
                        string[] faillArr = retdict["faillist"].Split(',');
                        for (int i = 0; i < faillArr.Length; i++)
                        {
                            if (string.IsNullOrEmpty(faillArr[i]))
                            {
                                continue;
                            }
                            UpdateSmsSendStatus(new { SendResult = error, Status = status, Mobile = faillArr[i], BatchNum = key.SerialNumber }.ToStringObjectDictionary(), url, token, NodeId);
                        }
                    }
                });
            }
        }
Esempio n. 4
0
        private void frmGetSms_Load(object sender, EventArgs e)
        {
            authEndPoint    = INIAdapter.ReadValue(Common.INI_SECTION_WEB, Common.INI_KEY_AUTH_END_POINT, Common.INI_FILE_PATH);
            smsEndPoint     = INIAdapter.ReadValue(Common.INI_SECTION_WEB, Common.INI_KEY_SMS_END_POINT, Common.INI_FILE_PATH);
            orderDictionary = BaseUtility.StrToDictionary(INIAdapter.ReadValue(Common.INI_SECTION_LOCAL, Common.INI_KEY_ORDER_SMS_SETTING_LAST, Common.INI_FILE_PATH), '&');

            string        lastReplyId   = "0";
            StringBuilder sb_getSmsInfo = new StringBuilder();

            _tickTimer          = new System.Timers.Timer(5 * 1000);
            _tickTimer.Elapsed += new System.Timers.ElapsedEventHandler(delegate(object source, System.Timers.ElapsedEventArgs ee)
            {
                _tickTimer.Enabled = false;
                HttpUtility.postSyncAsForm(smsEndPoint + "/reply.do", Encoding.Default, new { SpCode = orderDictionary["SpCode"], LoginName = orderDictionary["LoginName"], Password = BaseUtility.DecryptDES(orderDictionary["Password"]) }.ToStringObjectDictionary(), null, (ret, res) =>
                {
                    //ret = "replys=[{\"mdn\":\"13282147242\",\"content\":\"103/002/118.872887/28.970322/113.992516/22.528885/1000.000000/姓名/20\",\"reply_time\":\"2013-10-31 14:43:22\",}]";
                    Dictionary <string, string> dictionary = BaseUtility.StrToDictionary(ret, '&');
                    if (dictionary.ContainsKey("replys"))
                    {
                        string itemNo;
                        string content;
                        string replays = dictionary["replys"];
                        //比较最后一个回复ID号,没有新内容不执行发送,否则截取要发送的内容进行发送
                        if (!lastReplyId.Equals(dictionary["id"]))
                        {
                            lastReplyId = dictionary["id"];//保存最后一个ID号

                            dynamic dynJson = Newtonsoft.Json.JsonConvert.DeserializeObject(replays);
                            foreach (var item in dynJson)
                            {
                                itemNo  = Convert.ToString(item.mdn);
                                content = (string)item.content;

                                if (string.IsNullOrEmpty(content) || content.Split('/').Length < 1)
                                {
                                    continue;
                                }
                                if (string.IsNullOrEmpty(itemNo))
                                {
                                    continue;
                                }

                                HttpUtility.postSyncAsJSON(authEndPoint + "/AuthenticateUnicomMobileNo", null, new { MobileNo = itemNo }.ToStringObjectDictionary(), new { ApplicationId = "CS001" }.ToStringObjectDictionary(), (httpret, httpres) =>
                                {
                                    if ((bool)httpret.Success)
                                    {
                                        ArrayList arr  = BaseUtility.StrSplitToArray(content);
                                        string strflag = (string)arr[0];

                                        string url = httpret.ret.AccessPoint;//"http://localhost/SmartLife.CertManage.SmsServices";//
                                        if (strflag == "102" || strflag == "103" || strflag == "104")
                                        {
                                            HttpUtility.postSyncAsJSON(url + "/Oca/OldManLocateInfoService/CreateLocateByCall", null, new { LocateTime = item.reply_time, LongitudeS = arr[2], LatitudeS = arr[3] }.ToStringObjectDictionary(), new { ApplicationId = "CS001", Token = httpret.ret.Token, MobileNo = itemNo }.ToStringObjectDictionary(), (locret, locres) =>
                                            {
                                                if ((bool)locret.Success)
                                                {
                                                    sb_getSmsInfo.Append("成功插入" + itemNo + " : " + strflag + "," + arr[2] + "|" + arr[3] + "\r\n");
                                                }
                                            });
                                        }
                                        if (strflag == "105" || strflag == "104")
                                        {
                                            string reminderContent = (strflag == "104" ? "超出警戒范围报警" : "电压低于20%报警");
                                            HttpUtility.postSyncAsJSON(url + "/Pub/ReminderService/CreateReminderByCall", null, new { LastTime = item.reply_time, SourceType = strflag, RemindContent = reminderContent }.ToStringObjectDictionary(), new { ApplicationId = "CS001", Token = httpret.ret.Token, MobileNo = itemNo }.ToStringObjectDictionary(), (remret, remres) =>
                                            {
                                                if ((bool)remret.Success)
                                                {
                                                    sb_getSmsInfo.Append("成功插入" + itemNo + " : " + strflag + "," + reminderContent + "\r\n");
                                                }
                                            });
                                        }
                                    }
                                });
                            }
                            this.UIInvoke(() =>
                            {
                                if (this.tb_GetSms.Lines.Length > 1000)
                                {
                                    int iline      = tb_GetSms.GetFirstCharIndexFromLine(1);
                                    tb_GetSms.Text = tb_GetSms.Text.Remove(0, iline);
                                }
                                this.tb_GetSms.AppendText(sb_getSmsInfo.ToString());
                                sb_getSmsInfo.Remove(0, sb_getSmsInfo.Length);
                            });
                        }
                    }
                });
                HttpUtility.postAsyncAsForm(smsEndPoint + "/replyConfirm.do", Encoding.Default, new { SpCode = orderDictionary["SpCode"], LoginName = orderDictionary["LoginName"], Password = BaseUtility.DecryptDES(orderDictionary["Password"]), id = lastReplyId }.ToStringObjectDictionary(), null, (ret, res) =>
                {
                    string requestweb = (string)ret;
                    if (requestweb.Contains("result=0"))
                    {
                        sb_getSmsInfo.Append("上行回复内容确认成功! \r\n");
                    }
                    this.UIInvoke(() =>
                    {
                        if (this.tb_GetSms.Lines.Length > 1000)
                        {
                            int iline      = tb_GetSms.GetFirstCharIndexFromLine(1);
                            tb_GetSms.Text = tb_GetSms.Text.Remove(0, iline);
                        }
                        this.tb_GetSms.AppendText(sb_getSmsInfo.ToString());
                        sb_getSmsInfo.Remove(0, sb_getSmsInfo.Length);
                    });
                });
                _tickTimer.Enabled = true;
            });
            ////到达时间的时候执行事件;
            _tickTimer.AutoReset = true; //设置是执行一次(false)还是一直执行(true);
            _tickTimer.Enabled   = true; //是否执行System.Timers.Timer.Elapsed事件;
        }
Esempio n. 5
0
        private void btn_Save_Click(object sender, EventArgs e)
        {
            string authEndPoint    = formatEndPoint(txtAuthEndPoint.Text.Trim());
            string authSmsEndPoint = formatEndPoint(txtAuthSmsEndPoint.Text.Trim());
            string smsEndPoint     = formatEndPoint(tb_SmsEndPoint.Text.Trim());

            string shorError = "";

            shorError = tb_Txt_SpCode.Text.Trim();
            if (string.IsNullOrEmpty(shorError))
            {
                MessageBoxAdapter.ShowError("文本节点的企业编号不能为空!");
                return;
            }
            shorError = tb_Txt_LoginName.Text.Trim();
            if (string.IsNullOrEmpty(tb_Txt_SpCode.Text.Trim()))
            {
                MessageBoxAdapter.ShowError("文本节点的用户名不能为空!");
                return;
            }
            shorError = tb_Txt_Password.Text.Trim();
            if (string.IsNullOrEmpty(tb_Txt_SpCode.Text.Trim()))
            {
                MessageBoxAdapter.ShowError("文本节点的密码不能为空!");
                return;
            }
            shorError = tb_Digital_SpCode.Text.Trim();
            if (string.IsNullOrEmpty(tb_Txt_SpCode.Text.Trim()))
            {
                MessageBoxAdapter.ShowError("指令节点的企业编号不能为空!");
                return;
            }
            shorError = tb_Digital_LoginName.Text.Trim();
            if (string.IsNullOrEmpty(tb_Txt_SpCode.Text.Trim()))
            {
                MessageBoxAdapter.ShowError("指令节点的用户名不能为空!");
                return;
            }
            shorError = tb_Digital_Password.Text.Trim();
            if (string.IsNullOrEmpty(tb_Txt_SpCode.Text.Trim()))
            {
                MessageBoxAdapter.ShowError("指令节点的密码不能为空!");
                return;
            }


            string txtSmsSetting   = "SpCode=" + tb_Txt_SpCode.Text.Trim() + "&LoginName=" + tb_Txt_LoginName.Text.Trim() + "&Password="******"SpCode=" + tb_Digital_SpCode.Text.Trim() + "&LoginName=" + tb_Digital_LoginName.Text.Trim() + "&Password="******"/";

            HttpUtility.optionsAsyncTo(connectUrl, null, new { ApplicationId = "CS001" }.ToStringObjectDictionary(), (ret, res) =>
            {
                if (ret != "ok")
                {
                    MessageBoxAdapter.ShowError("无效的认证节点");
                    return;
                }

                if (SectionSettingsSave != null)
                {
                    SectionSettingsSave(this, new SectionSettingsSaveEventArgs
                    {
                        AuthEndPoint    = authEndPoint,
                        AuthSmsEndPoint = authSmsEndPoint,
                        SmsEndPoint     = smsEndPoint,
                        TxtSmsSetting   = txtSmsSetting,
                        OrderSmsSetting = orderSmsSetting
                    });
                }

                this.DialogResult = DialogResult.OK;

                this.UIInvoke(() =>
                {
                    this.Close();
                });
            });
        }