示例#1
0
        protected override void ExceuteBody(IJobExecutionContext context)
        {
            var dataMap = context.JobDetail.JobDataMap;

            //反序列化
            //var send_model =Common.SerializerHelper.DeSerializerToObject<PMS.Model.SMSModel.SMSModel_Send>(dataMap["SendModel"].ToString());
            var sendjob_model = Common.SerializerHelper.DeSerializerToObject<PMS.Model.JobDataModel.SendJobDataModel>(dataMap["SendModel"].ToString());
               var obj= sendjob_model.JobDataValue;
            var combine_model = Common.SerializerHelper.DeSerializerToObject<PMS.Model.CombineModel.SendAndMessage_Model>(obj.ToString());
            combine_model.Model_Message.isTiming = false;
            //var send_model = dataMap["SendModel"] as PMS.Model.JobDataModel.SendJobDataModel;

            //其他信息: 在 ServiceModel 客户端配置部分中,找不到引用协定“ServiceReference_QuartzService.IJobService”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此协定匹配的终结点元素。
            ISMSSend send = new SMSFactory.SMSSend();

            PMS.Model.SMSModel.SMSModel_Receive receive_model = new PMS.Model.SMSModel.SMSModel_Receive();

            PMS.Model.Message.BaseResponse response = new PMS.Model.Message.BaseResponse();

            //send.SendMsg(new PMS.Model.CombineModel.SendAndMessage_Model() { Model_Send = combine_model, Model_Message = new PMS.Model.ViewModel.ViewModel_Message() { isTiming = false } } , out receive_model);
            try
            {
                send.SendMsg(combine_model, out receive_model);
                LogHelper.WriteLog(string.Format("msgid:{0}已发送", combine_model.Model_Send.msgid));
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(string.Format("msgid:{0}发送失败,错误原因{1}",combine_model.Model_Send.msgid),ex);
            }

            PMS.Model.ViewModel.ViewModel_Message model = new PMS.Model.ViewModel.ViewModel_Message()
            {
                UID =0,
                SMSMissionID="",
                Content=""
            };

            //smsSendBLL.AfterSend(model, receive_model,)
        }
示例#2
0
        /// <summary>
        /// 立刻发送
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public bool SendMsgbyNow(PMS.Model.CombineModel.SendAndMessage_Model model, out SMSModel_Receive receiveModel)
        {
            //SMSModel_Receive receiveModel = new SMSModel_Receive();
            ServiceReference_SMSService.SMSServiceClient client = new ServiceReference_SMSService.SMSServiceClient();

            //重新梳理并做抽象
            #region 11-14 在控制器中已经调用这些方法(现写在控制器中),此处与控制器重复,注释掉
            ////1 根据选定的群组及部门获取相应的联系人
            //var list_PersonPhonesByGroupAndDepartment = GetFinalPersonPhoneList(model.Model_Message, GetPersonListByGroupDepartment);

            ////2 获取临时联系人电话集合

            //var list_tempPersonPhones = AddAndGetTempPersons(model.Model_Message, personBLL, groupBLL);

            ////2.2 获取最终的联系人电话集合
            //list_PersonPhonesByGroupAndDepartment.AddRange(list_tempPersonPhones);
            //var list_phones = list_PersonPhonesByGroupAndDepartment;

            ////3 转成发送对象
            //var sendMsg = ToSendModel(model.Model_Message, list_phones);

            /*步骤四
                    生成提交对象及短信及作业对象
                    由SMSFactory进行短信提交操作(并选择延时/立刻发送)
            */
            //4 短信发送
            //注意:desc:定时时间格式错误;
            //      result:定时时间格式错误
            //PMS.Model.CombineModel.SendAndMessage_Model sendandMsgModel = new PMS.Model.CombineModel.SendAndMessage_Model() { Model_Message = model, Model_Send = sendMsg };
            //model.Model_Send = sendMsg;
            #endregion
            // SMSModel_Receive receive = new SMSModel_Receive();
            PMS.Model.Message.BaseResponse response = new PMS.Model.Message.BaseResponse();
            client.SendMsg(model.Model_Send, out receiveModel);
            //receiveModel = new SMSModel_Receive() { msgid = "210cb72fe038484fb2952d0db96e0ae7", desc = "提交成功", result = "0", failPhones = new string[] { "" } };
            //发送之后执行将发送记录写会数据库的操作
            this.AfterSend(model.Model_Message, receiveModel, model.Model_Send.phones.ToList(), this.redis_list_id, this.Interval_OverTime);
            //SendMsg(model, out response);
            return true;
        }