/// <summary>
        /// 发送短信 系统固化短信
        /// </summary>
        /// <param name="memberId"></param>
        /// <param name="mobile"></param>
        /// <param name="subType"></param>
        /// <param name="groupId"></param>
        /// <returns></returns>
        public static Result SendMsgBySysInit(string memberId, string mobile, string subType, int groupId)
        {
            using (CRMEntities db = new CRMEntities())
            {
                var qTemp = db.TM_Act_CommunicationTemplet.Where(o => o.IsSysInit == true && o.Type == "SMS" && o.SubType == subType && o.DataGroupID == groupId).FirstOrDefault();
                string sendMsg = "";
                int templateId = 0;
                if (qTemp != null)
                {
                    sendMsg = qTemp.BasicContent;
                    templateId = qTemp.TempletID;
                }
                Regex reg = new Regex(@"{[a-zA-Z \u4e00-\u9fa5]+}");
                MatchCollection mc = reg.Matches(sendMsg);
                List<Dictionary<string, string>> lstDict = new List<Dictionary<string, string>>();
                for (int i = 0; i < mc.Count; i++)
                {
                    string strRgx = mc[i].Value.ToString().TrimStart('{').TrimEnd('}');
                    Dictionary<string, string> dict = new Dictionary<string, string>();
                    var qAlias = db.TD_SYS_FieldAlias.Where(o => o.FieldDesc == strRgx).FirstOrDefault();
                    if (qAlias != null)
                    {
                        dict["name"] = qAlias.FieldAlias;
                        if (qAlias.ControlType == "date")
                        {
                            DateTime qSqlRet = db.Database.SqlQuery<DateTime>(string.Format("select {2} from {0} where memberId='{1}'", qAlias.TableName, memberId, qAlias.FieldName)).FirstOrDefault();
                            dict["value"] = qSqlRet.ToShortDateString();
                        }
                        else
                        {
                            string qSql = db.Database.SqlQuery<string>(string.Format("select Convert(varchar,{2}) from {0} where memberId='{1}'", qAlias.TableName, memberId, qAlias.FieldName)).FirstOrDefault();
                            dict["value"] = qSql;
                        }
                        lstDict.Add(dict);
                    }
                }
                if (lstDict != null && lstDict.Count > 0)
                {
                    Result ret = SendSms(memberId, mobile, templateId, lstDict, sendMsg);
                    return ret;
                }
                else
                    return new Result(false, "参数不正确,不能发送短信!");
            }
        }

internal static Result SendSms(string memberId, string mobile, int templateId, object para, string message)
        {
            string defaultUser = "sys";
            try
            {
                using (CRMEntities db = new CRMEntities())
                {
                    StringBuilder sb = new StringBuilder();
                    List<Dictionary<string, string>> lstPara = (List<Dictionary<string, string>>)para;
                    sb.Append("{");
                    for (int i = 0; i < lstPara.Count; i++)
                    {
                        Dictionary<string, string> dict = lstPara[i];
                        sb.AppendFormat("\"{0\"}:\"{1}\"", dict["name"], dict["value"]);
                        if (i < lstPara.Count - 1)
                            sb.AppendFormat(",");
                    }
                    sb.Append("}");
                    var ent = new TM_Sys_SMSSendingQueue
                    {
                        Mobile = mobile,
                        Message = message,
                        MemberID = memberId,
                        AddedDate = DateTime.Now,
                        AddedUser = defaultUser,
                        Remark = "sys",
                        MsgPara = sb.ToString(),//JsonHelper.Serialize(para),
                        TempletID = templateId,
                        IsSent = false,
                    };
                    db.TM_Sys_SMSSendingQueue.Add(ent);
                    db.SaveChanges();

return new Result(true, "发送成功!");
                }
            }
            catch (Exception ex)
            {
                return new Result(false, ex.Message);
            }
        }

C#后台利用正则表达式查找匹配字符相关推荐

  1. iOS数据搜索技巧之【利用正则表达式进行匹配查找数据 】1、使用正则表达式对聊天记录的关键词进行监控 2、NSPredicate在正则表达式的应用

    文章目录 引言 I.[使用正则表达式对聊天记录的关键词进行监控] II iOS Predicate Format String Syntax [NSPredicate在正则表达式的应用] III 知识 ...

  2. JS正则表达式完全匹配字符

    js中 RegExp 对象使用 test() 来匹配正则表达式时,只要有子字符串能够匹配成功就会返回 true. 如果要当正则表达式完全匹配整个字符串时 test() 才返回true的话,可以在正则表 ...

  3. 利用正则表达式截取特定字符中间字符

    有如下场景,已知一个长字符串,需要获取指定字符串之间的字符. // 已知字符串 var str = 'body908888huhuc实测实<hu' 需要body和<hu之间的字符串.定义正 ...

  4. 掐头去尾-利用正则表达式的匹配顺序

    首先推荐一个在线测试正则表达式的网址:http://tool.oschina.net/regex 本文测试环境基于HTML5和JavaScript(JS) 使用正则表达式处理一个字符串时,如果只匹配一 ...

  5. 正则匹配url android,Android利用正则表达式如何匹配URL

    在Android项目中遇到一个问题,需求是需要获取浏览器分享出来的内容中的URL. 正常情况下分享出来的URL信息是包含在Bundle的intent.EXTRA_TEXT字段中的,而Tittle信息一 ...

  6. 正则表达式入门之字符匹配

    正则表达式入门-字符匹配 在前段时间进行文本挖掘练习的时候,不会使用正则表达式,深感不宜.所以这里,我想赶紧学习一下正则表达式. 注:本文是对<正则表达式必知必会>的复习. 1.正则表达式 ...

  7. 【超详总结/理解:正则表达式】特点/元字符/正则表达式中的标志位-flag/RegExp/重复操作与后向引用/匹配模式/表达邮箱/正则表达式对象的方法/利用正则表达式限制网页表单里的文本框输入内容

    文章目录 正则表达式: 正则表达式的用途 正则表达式的组成-元字符 正则表达式的特点 正则表达式中的标志位-flag JavaScript中的正则表达式解析 RegExp 定义 RegExp RegE ...

  8. java后台利用Pattern提取所需字符

    java后台利用Pattern提取所需字符 写在处理问题的前面:由于项目功能迭代,导致原来的页面当中ID命名规则,与当前命名规则不同(ps:既然要用到原来的东西,为什么在设计的时候没有考虑到兼容的问题 ...

  9. php正则匹配js中变量_PHP正则表达式核心技术 第4节 php查找匹配函数使用心得

    作者:极客小俊 一个专注于web技术的80后 你不用拼过聪明人,你只需要拼过那些懒人 你就一定会超越大部分人! php中兼容Perl的正则表达式处理函数 在我们说php系统自带的正则处理函数之前,我们 ...

最新文章

  1. 构建一个移动应用程序要花多少钱?
  2. 快速排序(二)最后修改
  3. 深入解析redis cluster gossip机制
  4. 仿抖音底部导航效果(二)
  5. JS 创建对象(常见的几种方法)
  6. day16前端(Dom+Jquery)
  7. CSS3.0_选择器_学习笔记
  8. MongoDB 分析查询性能
  9. httphost设置socks_socks5代理使用和安装配置
  10. 细节:js 对象继承的几种模式举例
  11. PSOLA基音同步叠加算法
  12. 可能这就是我应用pytest搭建的第一个测试框架吧
  13. 【JZOJ4762】【NOIP2016提高A组模拟9.7】千帆渡
  14. es的query及filter 1
  15. java 并行框架_JAVA并行框架学习之ForkJoin
  16. Android框架揭秘-Zygote笔记
  17. CSDN博客新手引导手册
  18. 明解java.pdf_明解C语言:中级篇 PDF下载
  19. java根据出生日期计算年龄_Java 根据出生日期获得年纪
  20. python实现凤凰新闻监控

热门文章

  1. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识
  2. linux redhat 红帽 centos 命令格式
  3. 团队作业——随堂小测(同学录)
  4. Python成长之路第二篇(3)_字典的置函数用法
  5. poj 3071 Football(概率dp)
  6. Zookeeper【最新版V3.4.6】- 官方翻译系列:Watch 机制的理解
  7. windows下tomcat自动定时重启方法
  8. gzcms技术开发文档
  9. 现代软件工程讲义4 Scrum/Sprint
  10. 分享几点Android 开发中的小技巧吧。不知道算不算?