Пример #1
0
        // 如果活动返回值,则从 CodeActivity<TResult>
        // 并从 Execute 方法返回该值。
        protected override void Execute(CodeActivityContext context)
        {
            // 获取 Text 输入参数的运行时值
            //string text = context.GetValue(this.Text);

            //1 根据传入的参数,获取Redis中的集合对象并返回
            //1.1 获取传入的参数
            string id_list = context.GetValue(Id_List);
            //1.2根据Redis中保存的 集合 的 key 获取该Redis帮助类(实例化)
            ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent> redisListhelper = new ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent>(id_list);
            //2 取得Redis中保存的该 Key 所对应的集合对象
            var list_final = new List<PMS.Model.QueryModel.Redis_SMSContent>();
            list_final = redisListhelper.GetLast();
            context.SetValue(List_redis, list_final);
        }
Пример #2
0
        /// <summary>
        /// 在发送短信之后执行
        ///  步骤五:
        ///  创建短信内容至数据库 
        ///  创建发送记录至数据库
        /// (此处应放在SMSFactory.SendMsg或写在JobInstance中的SendJob.Exceuted)
        /// </summary>
        /// <param name="model"></param>
        /// <param name="receive"></param>
        /// <param name="list_phones"></param>
        /// <param name="redis_list_id">redis中保存的list的key</param>
        /// <param name="redis_expirationDate">redis中保存集合的过期时间(默认72小时)</param>
        /// <returns></returns>
        public bool AfterSend(PMS.Model.ViewModel.ViewModel_Message model, SMSModel_Receive receive, List<string> list_phones,string redis_list_id,int redis_expirationDate=72)
        {
            //5 将发送的短信以及提交响应存入SMSContent
            var mid = model.SMSMissionID;
            var uid = model.UID;
            bool isSaveMsgOk = smsContentBLL.SaveMsg(receive, model.Content, mid, uid);

            //在current表中存入发送信息,在query之前,表中的StatusCode默认为98,DescContent默认为"暂时未收到查询回执"
            //7月28日 注意此处已修改方法为:CreateReceieveMsg!!!
            if (!smsRecord_CurrentBLL.CreateReceieveMsg(receive.msgid, list_phones))
            {
                return false;
            }

            /*步骤六:
                    写入redis缓存中
                    (此处应放在SMSFactory.SendMsg中或写在JobInstance中的SendJob.Exceuted)
            */
            ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent> redisListhelper = new ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent>(redis_list_id);

            StringRedisHelper redisStrhelper = new StringRedisHelper();
            redisStrhelper.Set(receive.msgid, "1", DateTime.Now.AddMinutes(redis_expirationDate));
            return true;
        }
Пример #3
0
 // private TimeSpan ts { get; set; }
 public QueryHelper()
 {
     //1 创建操作集合的Redis操作类
     redisListhelper = new ListReidsHelper<Redis_ListMsgIdObj>(List_Key);
 }
Пример #4
0
 // 如果活动返回值,则从 CodeActivity<TResult>
 // 并从 Execute 方法返回该值。
 protected override void Execute(CodeActivityContext context)
 {
     // 获取 Text 输入参数的运行时值
     //string text = context.GetValue(this.Text);
     //1 取出传入的集合和时间间隔变量
     var list = context.GetValue(List_redis);
     var secs = context.GetValue(Secs_Interval);
     var key = context.GetValue(Key_RedisList);
     redisListhelper = new ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent>(key);
     //2 获取超出时间间隔的第一个对象
     //var first = new PMS.Model.QueryModel.Redis_SMSContent();
     var first =  CheckTimeOut_RedisList(list, secs,key);
     if (first != null)
     {
         //3 为传出变量赋值
         context.SetValue(this.First_Obj, first);
         //first = new PMS.Model.QueryModel.Redis_SMSContent();
     }
 }
Пример #5
0
        // 如果活动返回值,则从 CodeActivity<TResult>
        // 并从 Execute 方法返回该值。
        protected override void Execute(CodeActivityContext context)
        {
            ReadAppConfig();
            // 获取 Text 输入参数的运行时值
            string text = context.GetValue(this.Text);

            //1.1 创建redis操作类
            ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent> redisListhelper;
            redisListhelper = new ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent>(context.GetValue(this.list_id));

            //1.2 根据Redis中保存的集合id查询到该集合
            var list_final = redisListhelper.GetLast();

            //1.3 判断集合第一个对象的时间是否已经超过规定的时间
            CheckTimeOut_RedisList(list_final, context.GetValue(this.seconds_add));
        }
Пример #6
0
 // 如果活动返回值,则从 CodeActivity<TResult>
 // 并从 Execute 方法返回该值。
 protected override void Execute(CodeActivityContext context)
 {
     // 获取 Text 输入参数的运行时值
     //string text = context.GetValue(this.Text);
     //1 取出传入的集合和时间间隔变量
     var list = context.GetValue(List_redis);
     var secs = context.GetValue(Secs_Interval);
     var key = context.GetValue(Key_RedisList);
     redisListhelper = new ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent>(key);
     //2 获取超出时间间隔的第一个对象
     //var first = new PMS.Model.QueryModel.Redis_SMSContent();
     var first =  CheckTimeOut_RedisList(list, secs,key);
     if (first != null)
     {
         //3 为传出变量赋值
         context.SetValue(this.First_Obj, first);
         context.SetValue(this.MsgId, first.msgid);
         //首元素符合条件
         context.SetValue(this.WF_Result, 1);
         //此处不应为state赋值,state为查询状态码,此时还未进行查询操作,故只对以上的流程结果赋值
         //context.SetValue(this.State, 0);
         //first = new PMS.Model.QueryModel.Redis_SMSContent();
     }
     else
     {
         context.SetValue(this.WF_Result, 3);
     }
 }