/// <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. 在eclipse中利用正则表达式查找替换

    众所周知,eclipse是可以用正则表达式来进行查找的,那么怎么利用正则表达式进行替换呢? 方法也很简单,就是在Replace with: 里面输入$来代表捕获型括号的匹配结果,$1为第一个匹配结果, ...

  2. swift 3.0 正则表达式查找/替换字符

    1.什么是正则表达式 正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符 ...

  3. linux 查找匹配文件中包含指定字符的 前五行,这里是指所有匹配的前五行

    最近被问到 一个关于查找匹配字符的信息显示问题: 系统/etc/sysctl.conf文件会定义系统内核的一些配置,请查找和net有关的信息,并只打印前面5行信息. 解决方式大概试两种写法均可: 1. ...

  4. (转)ObjC利用正则表达式抓取网页内容(网络爬虫)

    转自:http://www.cocoachina.com/bbs/read.php?tid=103813 *****boy]原创 2012年5月20日 在开发项目的过程,很多情况下我们需要利用互联网上 ...

  5. OC利用正则表达式获取网络资源(网络爬虫)

    在开发项目的过程,很多情况下我们需要利用互联网上的一些数据,在这种情况下,我们可能要写一个爬虫来爬我们所需要的数据.一般情况下都是利用正则表达式来匹配Html,获取我们所需要的数据.一般情况下分以下三 ...

  6. ObjC利用正则表达式抓取网页内容(网络爬虫)

    本文转载至 http://www.cocoachina.com/bbs/read.php?tid=103813&fpage=63 在开发项目的过程,很多情况下我们需要利用互联网上的一些数据,在 ...

  7. Sublime 、NotePad++中查找匹配中文字符

    在Sublime .NotePad++中可以使用正则表达式 [\x{4e00}-\x{9fa5}] 查找匹配中文字符.

  8. Js 利用正则表达式和replace函数获取string中所有被匹配到的文本

    js的replace函数除了替换文本以外还有获取所有被正则表达式匹配到的文本的功能.这里以一个简单的案例来作为演示. 利用正则查找出所有被两个花括号包裹的字符串: var str = '<div ...

  9. Notepad++正则表达式查找替换文本中文字符

    测试需求 测试工具中xml配置文件中注释字段包含中文字符,在Win10系统下使用工具中偶尔会出现中文乱码导致配置文件失效.解决方法将配置文件中的中文注释换成英文注释或者直接替换删除.如何将配置文件中的 ...

随机推荐

  1. Codeforces Round #257 (Div. 2) D题:Jzzhu and Cities 删特殊边的最短路

    D. Jzzhu and Cities time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. asp.net在用户控件中使用ClientScript

    在用户空间中调用ClientScript.RegisterClientScriptBlock方法 ClientScript的命名空间是System.Web.UI.Page,并且要实例化之后的Page才 ...

  3. Leetcode:minimum_depth_of_binary_tree解决问题的方法

    一.     称号 并寻求最深的二元相似.给定的二进制树.求其最小深度. 最小深度是沿从根节点,到叶节点最短的路径. 二.     分析 当我看到这个题目时.我直接将最深二叉树的代码略微改了下,把ma ...

  4. HDU 4508 沼泽湿地系列故事——记住减肥I (2013腾讯编程马拉松预赛第一)

    pid=4508">http://acm.hdu.edu.cn/showproblem.php?pid=4508 题目大意: 给定一些数据. 每组数据以一个整数n開始,表示每天的食物清 ...

  5. 两个文件中的配置项设置方法和C比较程序处理

    在实际的软件开发项目.程序经常需要翻阅了一些资料可能会改变从外部,我们需要读出的信息到一个统一的文件(一般ini档),而此文件被称为个人资料. 考虑这样一个场景,程序须要与多个数据库打交道,要从配置文 ...

  6. 无阻塞情况connect生产EINPROGRESS错

    今天的游戏开发client测试程序,非常多,因为出现client.后connect成功.代码证recv系统调用.后来发现,可能是由于socket默认模式被阻止,这将使很多client 接处于链接却不能 ...

  7. 乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern)

    原文:乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 责任链模式(Chain of R ...

  8. Android搜索芽发展clientVersion1.0结束(过程和结果显示)

    本文原:http://blog.csdn.net/minimicall 转载标明. 博士生.找我,我希望有一个合作伙伴.为了帮助他解决了移动终端产品.他给了我他的想法的叙述性说明,搜索布.要搜索布图像 ...

  9. POJ 1384 Piggy-Bank 背包DP

    所谓的全然背包,就是说物品没有限制数量的. 怎么起个这么intimidating(吓人)的名字? 事实上和一般01背包没多少差别,只是数量能够无穷大,那么就能够利用一个物品累加到总容量结尾就能够了. ...

  10. Effective C++ Item 32 确保你的 public 继承模子里出来 is-a 关联

    本文senlie原版的,转载请保留此地址:http://blog.csdn.net/zhengsenlie 经验:"public继承"意味 is-a.适用于 base classe ...