Пример #1
0
        /// <summary>
        /// 群发送短信
        /// </summary>
        /// <param name="mobile"></param>
        /// <param name="msg"></param>
        /// <param name="sendTime"></param>
        /// <remarks>2015-09-12 王耀发 创建</remarks>
        public SmsResult SendMsg(string mobile, string msg, DateTime?sendTime)
        {
            var result = new SmsResult {
                Status = SmsResultStatus.Success
            };

            result = SmsProviderFactory.CreateProvider().Send(mobile, msg, sendTime);
            SaveToDb(mobile, msg, result);
            return(result);
        }
Пример #2
0
 public SimCorpMobile(IOutput output)
 {
     Screen      = new OledScreen();
     SimCard     = new SimCard(SimCard.FormFactor.Nano, "+380000000000");
     Battery     = new LithiumIonBattery(3.75F, 3600);
     Microphone  = new CarbonMicroPhone();
     Speaker     = new RegularSpeaker(output);
     Keyboard    = new GboardKeyboard();
     SmsStorage  = new SmsStorage(output);
     SmsProvider = SmsProviderFactory.GetProvider(SmsStorage, SmsProviderFactory.Providers.Task);
 }
Пример #3
0
        /// <summary>
        /// 各分销商发送短信
        /// </summary>
        /// <param name="mobile">手机号(13811290000;15210950000)</param>
        /// <param name="dealername">分销商</param>
        /// <param name="msg">消息</param>
        /// <param name="sendTime">定时</param>
        /// 王耀发 2016-1-18 创建
        /// <returns>执行结果</returns>
        public SmsResult DealerSendMsg(string mobile, string dealername, string msg, DateTime?sendTime)
        {
            var result = new SmsResult {
                Status = SmsResultStatus.Success
            };

            try
            {
                result = SmsProviderFactory.CreateProvider().DealerSend(mobile, dealername, msg, sendTime);

                SaveToDb(mobile, msg, result);
            }
            catch (Exception ex)
            {
                result.Status = SmsResultStatus.Failue;
            }

            return(result);
        }
Пример #4
0
        /// <summary>
        /// 发送一条短信
        /// 调用网关发送短信(不保存到数据库)
        /// </summary>
        /// <param name="sysNo">后台管理员编号</param>
        /// <param name="msg">70字(包含签名)一条短信,超出则按此规则分割成多条短信</param>
        /// <param name="sendTime">定时发送(精确到秒),为空不需要定时</param>
        /// <returns>返回受影响行数</returns>
        /// <remarks>
        /// 2014-10-03 余勇 创建
        /// </remarks>
        public SmsResult Send(int sysNo, string msg, DateTime?sendTime)
        {
            var user   = Hyt.BLL.Sys.SyUserBo.Instance.GetSyUser(sysNo);
            var result = new SmsResult {
                Status = SmsResultStatus.Success
            };

            if (user != null &&
                !string.IsNullOrEmpty(user.MobilePhoneNumber) &&
                !string.IsNullOrEmpty(msg) &&
                VHelper.ValidatorRule(new Rule_Mobile(user.MobilePhoneNumber)).IsPass &&
                user.MobilePhoneNumber.Length >= 11)
            {
                System.Threading.Tasks.Task.Factory.StartNew(() =>
                {
                    try
                    {
                        result = SmsProviderFactory.CreateProvider().Send(user.MobilePhoneNumber, msg + "【】", sendTime);
                        SysLog.Instance.Info(LogStatus.系统日志来源.后台,
                                             msg + "(" + user.MobilePhoneNumber + ")", LogStatus.系统日志目标类型.短信咨询, 0, null, "",
                                             0);
                    }
                    catch (Exception ex)
                    {
                        Hyt.BLL.Log.SysLog.Instance.Error(Model.WorkflowStatus.LogStatus.系统日志来源.外部应用, "短信发送异常", ex);
                    }
                });
            }
            else
            {
                return(new SmsResult
                {
                    RowCount = 0,
                    Status = SmsResultStatus.Failue
                });
            }
            return(result);
        }
Пример #5
0
        /// <summary>
        /// 发送一条短信
        /// 先调用网关发送短信,然后将短信记录到数据库,如果发送失败,则由后台进程重发。
        /// </summary>
        /// <param name="mobile">号码</param>
        /// <param name="msg">70字(包含签名)一条短信,超出则按此规则分割成多条短信</param>
        /// <param name="sendTime">定时发送(精确到秒),为空不需要定时</param>
        /// <returns>返回受影响行数</returns>
        /// <remarks>
        /// 2013-02-26 罗雄伟 创建
        /// 2014-07-30 黄波 修改 将短信发送放在TASK中执行
        /// </remarks>
        private SmsResult Send(string mobile, string msg, DateTime?sendTime)
        {
            var user = Hyt.BLL.CRM.CrCustomerBo.Instance.GetCrCustomer(mobile);

            if (user != null && user.IsReceiveShortMessage == (int)Hyt.Model.WorkflowStatus.CustomerStatus.是否接收短信.否)
            {
                return new SmsResult
                       {
                           RowCount = 0,
                           Status   = SmsResultStatus.Failue
                       }
            }
            ;
            var result = new SmsResult {
                Status = SmsResultStatus.Success
            };


            //添加判断是否为手机号 余勇 2014-06-18
            if (!string.IsNullOrEmpty(mobile) && !string.IsNullOrEmpty(msg) && VHelper.ValidatorRule(new Rule_Mobile(mobile)).IsPass&& mobile.Length >= 11)
            {
                System.Threading.Tasks.Task.Factory.StartNew(() =>
                {
                    try
                    {
                        result = SmsProviderFactory.CreateProvider().Send(mobile, msg, sendTime);
                        SaveToDb(mobile, msg, result);
                    }
                    catch (Exception ex)
                    {
                        Hyt.BLL.Log.SysLog.Instance.Error(Model.WorkflowStatus.LogStatus.系统日志来源.外部应用, "短信发送异常", ex);
                    }
                });
            }
            return(result);
        }
Пример #6
0
        /// <summary>
        /// Asynchronously sends an SMS message to a user.
        /// </summary>
        /// <param name="message">The message to send.</param>
        /// <returns>The task representing the asynchronous operation.</returns>
        public Task SendAsync(IdentityMessage message)
        {
            var smsProvider = SmsProviderFactory.GetProvider();

            return(smsProvider.SendAsync(message.Destination, message.Body));
        }