コード例 #1
0
        /// <summary>
        /// 新增站内信
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public Result <int> AddMessage(long sendId, long sendCompanyId, long receiveId, long receiveCompanyId, MessageStep step, string businessUrl, Dictionary <string, string> parameters, string linkURL = "")
        {
            Result <int> result = new Result <int>();

            try
            {
                using (MsgDataContext db = new MsgDataContext())
                {
                    //查找模板
                    var templete = db.Msg_MessageTemplete.FirstOrDefault(i => i.Step == step.ToString() && i.IsConfirm && i.IsEnable);
                    if (templete != null)
                    {
                        Msg_Message model = new Msg_Message();
                        string      con   = templete.TemplateCon;
                        string      title = templete.TitleCon;
                        if (parameters != null && parameters.Any())
                        {
                            //替换标题和内容参数
                            foreach (var item in parameters)
                            {
                                con   = con.Replace("{" + item.Key + "}", item.Value);
                                title = title.Replace("{" + item.Key + "}", item.Value);
                            }
                        }
                        model.Contents         = con;
                        model.LinkURL          = string.IsNullOrEmpty(linkURL) ? templete.LinkURL : linkURL;
                        model.ReadTime         = null;
                        model.ReceiveId        = receiveId;
                        model.SenderId         = sendId;
                        model.SendeCompanyId   = sendCompanyId;
                        model.ReceiveCompanyId = receiveCompanyId;
                        model.State            = false;
                        model.Step             = step.ToString();
                        model.TemplateId       = templete.Id;
                        model.Title            = title;
                        model.SendTime         = DateTime.Now;
                        model.BusinessUrl      = businessUrl;
                        db.Msg_Message.Add(model);
                        var rows = db.SaveChanges();
                        result.Data = rows;
                        result.Flag = EResultFlag.Success;

                        //WriteLog(AdminModule.MessageHistory.GetText(), SystemRight.Add.GetText(), "新增站内信:" + model.Id + ":" + model.Title);
                    }
                    else
                    {
                        throw new Exception("未查找到对应站内信模板");
                    }
                }
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "AddMessage");
            }
            return(result);
        }
コード例 #2
0
        /// <summary>
        /// 新增站内信
        /// </summary>
        /// <param name="sendId"></param>
        /// <param name="sendCompanyId"></param>
        /// <param name="recDic">接收信息字典类型 key:接收人Id;value:接收人单位Id</param>
        /// <param name="step"></param>
        /// <param name="parameters"></param>
        /// <param name="linkURL"></param>
        /// <returns></returns>
        public Result <int> AddMessageBatch(long sendId, long sendCompanyId, Dictionary <long, long> recDic, MessageStep step, Dictionary <string, string> parameters, string linkURL = "")
        {
            Result <int> result = new Result <int>();

            try
            {
                using (MsgDataContext db = new MsgDataContext())
                {
                    //查找模板
                    var templete = db.Msg_MessageTemplete.FirstOrDefault(i => i.Step == step.ToString() && i.IsConfirm && i.IsEnable);
                    if (templete != null)
                    {
                        if (recDic != null && recDic.Any())
                        {
                            List <Msg_Message> list  = new List <Msg_Message>();
                            Msg_Message        model = null;
                            foreach (var dic in recDic)
                            {
                                model = new Msg_Message();

                                string con   = templete.TemplateCon;
                                string title = templete.TitleCon;
                                if (parameters != null && parameters.Any())
                                {
                                    foreach (var item in parameters)
                                    {
                                        con   = con.Replace("{" + item.Key + "}", item.Value);
                                        title = title.Replace("{" + item.Key + "}", item.Value);
                                    }
                                }
                                model.Contents         = con;
                                model.LinkURL          = string.IsNullOrEmpty(linkURL) ? templete.LinkURL : linkURL;
                                model.ReadTime         = null;
                                model.ReceiveId        = dic.Key;
                                model.SenderId         = sendId;
                                model.SendeCompanyId   = sendCompanyId;
                                model.ReceiveCompanyId = dic.Value;
                                model.State            = false;
                                model.Step             = step.ToString();
                                model.TemplateId       = templete.Id;
                                model.Title            = title;
                                model.SendTime         = DateTime.Now;
                                list.Add(model);
                            }
                            db.Msg_Message.AddRange(list);
                            var rows = db.SaveChanges();
                            result.Data = rows;
                            result.Flag = EResultFlag.Success;
                        }
                        else
                        {
                            throw new Exception("未找到接收人");
                        }
                    }
                    else
                    {
                        throw new Exception("未查找到对应站内信模板");
                    }
                }
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "AddMessage");
            }
            return(result);
        }