Example #1
0
        void WriteSendHistory(AppEmailData email, Guid emailId, SqlCmdHelper.SqlRuleMapResult mapSql)
        {
            AppEmailReceiver send = new AppEmailReceiver()
            {
                PrimaryMsgId = emailId,
                CreateTime   = DateTime.Now,
                IsDelete     = false,
                SendResult   = false,
                SendTo       = email.To,
                IsMailer     = false
            };

            send.SendTime = email.SendTime.HasValue ? email.SendTime.Value : DateTime.Now;
            send.DayInt   = int.Parse(send.CreateTime.ToString("yyyyMMdd"));
            send.Id       = Guid.NewGuid();
            SqlCmdHelper help = new SqlCmdHelper()
            {
                SqlConnString = SqlConnString
            };

            help.InsertSqlParam(send.GetInsertSql(), send, mapSql);
            if (email.Mailer != null)
            { //抄送人
                send.IsMailer = true;
                for (int i = 0; i < email.Mailer.Count; i++)
                {
                    send.Id     = Guid.NewGuid();
                    send.SendTo = email.Mailer[i];
                    help.InsertSqlParam(send.GetInsertSql(), send, mapSql);
                }
            }
        }
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public bool Add(Organze entity)
        {
            string       sqlFormat = SqlCmdHelper.GenerateInsertSql <Organze>();
            SqlCmdHelper help      = new SqlCmdHelper()
            {
                SqlConnString = SqlConnString
            };

            SqlCmdHelper.SqlRuleMapResult rule = new SqlCmdHelper.SqlRuleMapResult();
            help.InsertSqlParam(sqlFormat, entity, rule);
            return(help.ExcuteNoQuery(string.Join(";", rule.WaitExcuteSql), rule.SqlParams.ToArray()) > 0);
        }
Example #3
0
        public bool SaveWaitSendEmailData(AppEmailData email)
        {
            DateTime now = DateTime.Now;

            SqlCmdHelper.SqlRuleMapResult mapSql = new SqlCmdHelper.SqlRuleMapResult();
            //数据存储到数据表
            AppEmail ae = new AppEmail()
            {
                Body       = email.Body,
                Subject    = email.Subject,
                CreateTime = now,
                IsDelete   = false,
                ParentId   = new Guid(),
                SendBy     = email.From,
                BodyType   = (short)email.BodyType.GetHashCode()
            };

            if (email.EmailId.Equals(new Guid()))
            {
                ae.Id = Guid.NewGuid();
            }
            else
            {
                ae.Id = email.EmailId;
            }
            SqlCmdHelper help = new SqlCmdHelper()
            {
                SqlConnString = SqlConnString
            };

            help.InsertSqlParam(ae.GetInsertSql(), ae, mapSql);
            if (!email.SendTime.HasValue)
            {//这条邮件数据是此刻进行发送
                email.SendTime = now;
            }
            //进行定时计划存储
            AppEmailPlan plan = new AppEmailPlan()
            {
                CreateTime   = now,
                Id           = Guid.NewGuid(),
                PrimaryMsgId = ae.Id,
                SendNumber   = 0,
                SendTime     = email.SendTime.Value
            };

            if (plan.SendTime <= now)
            {//已发送
                plan.SendNumber = 1;
            }
            help.InsertSqlParam(plan.GetInsertSql(), plan, mapSql);
            AppEmailReceiverPlan emailTo = new AppEmailReceiverPlan()
            {
                CreateTime   = now,
                Id           = Guid.NewGuid(),
                IsMailer     = false,
                PrimaryMsgId = ae.Id,
                SendTo       = email.To
            };

            help.InsertSqlParam(emailTo.GetInsertSql(), emailTo, mapSql);
            List <AppEmailReceiverPlan> emailToColl = new List <AppEmailReceiverPlan>();

            emailToColl.Add(emailTo);
            if (email.Mailer != null)
            {
                foreach (var item in email.Mailer)
                {//抄送人
                    AppEmailReceiverPlan emailers = new AppEmailReceiverPlan()
                    {
                        IsMailer     = true,
                        SendTo       = item,
                        PrimaryMsgId = ae.Id,
                        Id           = Guid.NewGuid(),
                        CreateTime   = now
                    };
                    help.InsertSqlParam(emailers.GetInsertSql(), emailers, mapSql);
                    //emailToColl.Add(emailers);
                }
            }
            if (!string.IsNullOrEmpty(string.Join("", mapSql.NoMapRule)))
            {
                //日志输出没有匹配的规则
                return(false);
            }
            string sql = string.Join(";", mapSql.WaitExcuteSql);

            return(help.ExcuteNoQuery(sql, mapSql.SqlParams.ToArray()) == mapSql.WaitExcuteSql.Count);
        }