Esempio n. 1
0
        public void Send()
        {
            while (true)
            {
                try
                {
                    var warndetailbll = new WarnDetailBll();
                    var dtemail       = warndetailbll.FindByEmail();
                    if (dtemail != null && dtemail.Rows.Count > 0)
                    {
                        var count     = dtemail.Rows.Count;
                        var modellist = new List <EmailAndSmsModel>();
                        for (var i = 0; i < count; i++)
                        {
                            var model = new EmailAndSmsModel()
                            {
                                Id      = dtemail.Rows[i]["id"].ToString(),
                                Address = dtemail.Rows[i]["address"].ToString(),
                                Title   = dtemail.Rows[i]["title"].ToString(),
                                Body    = dtemail.Rows[i]["body"].ToString()
                            };
                            modellist.Add(model);
                        }
                        var email = new Emails();
                        email.SendMailtoDes(modellist);//发送邮件
                    }



                    var dtsms = warndetailbll.FindBySms();
                    if (dtsms != null && dtsms.Rows.Count > 0)
                    {
                        var count     = dtsms.Rows.Count;
                        var modellist = new List <EmailAndSmsModel>();
                        for (var i = 0; i < count; i++)
                        {
                            var model = new EmailAndSmsModel()
                            {
                                Address = dtsms.Rows[i]["address"].ToString(),
                                Title   = dtsms.Rows[i]["title"].ToString(),
                                Body    = dtsms.Rows[i]["body"].ToString()
                            };
                            modellist.Add(model);
                        }
                        var sms = new Sms();
                        //sms.SendSms(modellist);//发送短信
                    }
                }
                catch (Exception e)
                {
                }
                Thread.Sleep(60 * 1000);//线程睡眠60秒
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 发送短信
        /// </summary>
        public string SendSms()
        {
            var warndetailBll  = new WarnDetailBll();
            var smsSuccessList = new Dictionary <uint, string>();
            var data           = warndetailBll.FindBySms();

            if (data.Rows.Count <= 0)
            {
                return("没有短信数据。");
            }

            foreach (DataRow dataRow in data.Rows)//这里是全部的信息
            {
                var id             = dataRow["id"].ToString();
                var warnid         = dataRow["WARNRECID"].ToString();
                var warncontext    = dataRow["WARNCONTEXT"].ToString();
                var strContent     = ResplaceTemplateStr(warncontext, warnid);
                var warntarget     = dataRow["ADDRESS"].ToString();
                var warntargetList = warntarget.Split(';');
                foreach (var s in warntargetList)//这里是全部的电话
                {
                    try
                    {
                        var num = SmsApi.SMSSendMessage(strContent, s);
                        smsSuccessList.Add(num, id);
                        Thread.Sleep(100);
                    }
                    catch (Exception)
                    {
                        continue;
                    }
                }
            }
            var successNum = 0;
            var sendingNum = 0;
            var failureNum = 0;

            foreach (var u in smsSuccessList)
            {
                var        queryData  = SmsApi.SMSQuery(u.Key);
                WarnDetail warndetail = null;
                switch (queryData)
                {
                //发送成功
                case 1:
                    warndetail = new WarnDetail
                    {
                        Id          = u.Value,
                        ProcessFlag = 1,
                        IsSuccess   = 1,
                        SendDT      = DateTime.Now,
                        UpdateDT    = DateTime.Now
                    };
                    successNum++;
                    break;

                //正在发送中
                case -1:
                    warndetail = new WarnDetail
                    {
                        Id          = u.Value,
                        IsSuccess   = 0,
                        ProcessFlag = 1,
                        SendDT      = DateTime.Now,
                        UpdateDT    = DateTime.Now
                    };
                    sendingNum++;
                    break;

                //发送失败
                case 0:
                    warndetail = new WarnDetail
                    {
                        Id          = u.Value,
                        ProcessFlag = 1,
                        IsSuccess   = 2,
                        SendDT      = DateTime.Now,
                        UpdateDT    = DateTime.Now
                    };
                    failureNum++;
                    break;

                default: break;
                }
                warndetailBll.Modify(warndetail);
            }

            return("全部已发送:" + smsSuccessList.Count + "条(其中,成功:" + successNum + "条,失败:" + failureNum + "条,正在发送:" + sendingNum + "条)");
        }