Пример #1
0
        public static void Add(SmtpQueue item)
        {
            string cons = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DefaultConnection"].ToString();

            StringBuilder query = new StringBuilder(@"INSERT INTO dbo.t_Smtp_Queue
                                                        ( Title,
                                                          Status,
                                                          CreatedTime,
                                                          SendedTime,
                                                          Remark
                                                        )
                                                VALUES  ( @title,
                                                          @status,                                                     
                                                          @createdTime,
                                                          @sendedTime,
                                                          @remark
                                                        )");

            using (SqlConnection conn = new SqlConnection(cons))
            {
                SqlCommand cmd = new SqlCommand(query.ToString(), conn);
                cmd.Parameters.AddWithValue("@title", item.Title);
                cmd.Parameters.AddWithValue("@status", item.Status);
                cmd.Parameters.AddWithValue("@createdTime", item.CreatedTime);
                cmd.Parameters.AddWithValue("@sendedTime", item.SendedTime);
                cmd.Parameters.AddWithValue("@remark", item.Remark);
                conn.Open();

                cmd.ExecuteNonQuery();
            }
        }
Пример #2
0
        public static List <SmtpQueue> GetList()
        {
            string           cons   = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DefaultConnection"].ToString();
            List <SmtpQueue> result = new List <SmtpQueue>();

            using (SqlConnection conn = new SqlConnection(cons))
            {
                string query = @"SELECT Id,
                                        Title,
                                        Status,
                                        CreatedTime,
                                        SendedTime,
                                        Remark FROM t_Smtp_Queue";

                SqlCommand cmd = new SqlCommand(query, conn);
                conn.Open();

                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        SmtpQueue item = new SmtpQueue();
                        item.Id          = Convert.ToInt32(reader["Id"]);
                        item.Title       = Convert.ToString(reader["Title"]);
                        item.Status      = Convert.ToInt32(reader["Status"]);
                        item.CreatedTime = Convert.ToDateTime(reader["CreatedTime"]);
                        item.SendedTime  = Convert.ToDateTime(reader["SendedTime"]);
                        item.Remark      = Convert.ToString(reader["Remark"]);
                        result.Add(item);
                    }
                }
            }

            return(result);
        }
Пример #3
0
        public static SmtpQueue GetByTitle(string title)
        {
            string    cons   = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DefaultConnection"].ToString();
            SmtpQueue result = new SmtpQueue();

            using (SqlConnection conn = new SqlConnection(cons))
            {
                string query = @"SELECT Id,
                                        Title,
                                        Status,
                                        CreatedTime,
                                        SendedTime,
                                        Remark FROM t_Smtp_Queue WHERE Title=@title";

                SqlCommand cmd = new SqlCommand(query, conn);
                cmd.Parameters.AddWithValue("@title", title);
                conn.Open();

                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        result.Id          = Convert.ToInt32(reader["Id"]);
                        result.Title       = Convert.ToString(reader["Title"]);
                        result.Status      = Convert.ToInt32(reader["Status"]);
                        result.CreatedTime = Convert.ToDateTime(reader["CreatedTime"]);
                        result.SendedTime  = Convert.ToDateTime(reader["SendedTime"]);
                        result.Remark      = Convert.ToString(reader["Remark"]);
                    }
                }
            }

            return(result);
        }
Пример #4
0
        public static void Edit(SmtpQueue item)
        {
            string cons = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DefaultConnection"].ToString();

            StringBuilder query = new StringBuilder(@"UPDATE dbo.t_Smtp_Queue 
                                                      SET Title=@title,
                                                          Status=@status,                                                  
                                                          CreatedTime=@createdTime,
                                                          SendedTime=@sendedTime,
                                                          Remark=@remark WHERE Id=@id");

            using (SqlConnection conn = new SqlConnection(cons))
            {
                SqlCommand cmd = new SqlCommand(query.ToString(), conn);
                cmd.Parameters.AddWithValue("@title", item.Title);
                cmd.Parameters.AddWithValue("@status", item.Status);
                cmd.Parameters.AddWithValue("@createdTime", item.CreatedTime);
                cmd.Parameters.AddWithValue("@sendedTime", item.SendedTime);
                cmd.Parameters.AddWithValue("@remark", item.Remark);
                cmd.Parameters.AddWithValue("@id", item.Id);
                conn.Open();

                cmd.ExecuteNonQuery();
            }
        }
        private void TestingEnvironment()
        {
            List <SmtpQueue> smtpQueues = SmtpQueueBusiness.GetList();
            SmtpQueue        lastReport = smtpQueues.OrderBy(a => a.Id).LastOrDefault();
            DateTime         date       = Convert.ToDateTime(DateTime.Now.AddDays(-1).ToString("MM/dd/yyyy 00:00:00"));
            string           title      = date.ToString("MM/dd/yyyy 23");

            if (lastReport != null && lastReport.Title == title)
            {
                //已经生成了报表
            }
            else
            {
                string lastTitle = lastReport?.Title;
                if (string.IsNullOrEmpty(lastTitle))
                {
                    title = date.ToString("MM/dd/yyyy HH");
                }
                else
                {
                    DateTime lastDate = DateTime.Parse(lastTitle.Contains(" ") ? lastTitle + ":00:00" : lastTitle);
                    date  = lastDate.AddHours(1);
                    title = date.ToString("MM/dd/yyyy HH");
                }

                //// 每天9开始统计前一天的数据
                //if (DateTime.Now > Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 09:00:00")))
                //{
                List <ZoneEntity> zoneEntities = ZoneBusiness.GetZoneList().Where(a => a.IfEnable).ToList();
                if (zoneEntities != null && zoneEntities.Count > 0)
                {
                    foreach (ZoneEntity zone in zoneEntities)
                    {
                        CreateActiveReportZoneTesting(zone, date);
                    }
                    //插入邮件发送队列
                    SmtpQueueBusiness.Add(new SmtpQueue
                    {
                        Title       = title,
                        Status      = 0,
                        CreatedTime = DateTime.Now,
                        SendedTime  = DateTime.Now,
                        Remark      = "",
                    });
                }
            }
            //}
        }
Пример #6
0
        /// <summary>
        /// 发送邮件
        /// </summary>
        public void MainQueueDoWork()
        {
            try
            {
                if (!isProcessing)
                {
                    isProcessing = true;
                    List <SmtpQueue> smtpQueues = SmtpQueueBusiness.GetList();
                    List <SmtpQueue> subQueues  = smtpQueues.Where(a => a.Status == 0).ToList();
                    if (subQueues != null && subQueues.Count > 0)
                    {
                        var configuration = GlobalConfigurationBusiness.GetConfigurationList().FirstOrDefault();
                        for (int i = 0; i < subQueues.Count; i++)
                        {
                            SmtpQueue smtp           = subQueues[i];
                            string    title          = smtp.Title;
                            string    bodys          = GeneratedMail(title);
                            string    smtpserver     = ConstValues.emailsmtp;
                            bool      enablessl      = ConstValues.emailssl;
                            string    userName       = ConstValues.emailusername;
                            string    pwd            = Utils.AesDecrypt(ConstValues.emailpassword);
                            string    nickName       = ConstValues.emailnickname;
                            string    strfrom        = ConstValues.emailfrom;
                            string    strto          = configuration.EmailAddForWhiteList;
                            string    subj           = string.Format("IP Action Report {0}", title);
                            int       port           = ConstValues.emailport;
                            bool      authentication = ConstValues.emailauthentication;
                            int       timeout        = ConstValues.emailtimeout;

                            Utils.SendMail(smtpserver, enablessl, userName, pwd, nickName, strfrom, strto, subj, bodys, port, authentication, timeout);

                            smtp.Status = 1;
                            SmtpQueueBusiness.Edit(smtp);
                        }
                    }
                    isProcessing = false;
                }
            }
            catch (Exception e)
            {
                logService.Error(e.StackTrace);
                isProcessing = false;
            }
            finally
            {
            }
        }
Пример #7
0
        private string GeneratedMail(string title)
        {
            StringBuilder mail      = new StringBuilder();
            SmtpQueue     smtpQueue = SmtpQueueBusiness.GetByTitle(title);

            if (smtpQueue != null && smtpQueue.Id > 0)
            {
                mail.AppendLine("<div id=\"mail\">");
                List <ActionReport> actionReports = ActionReportBusiness.GetListByTitle(title);

                List <ZoneEntity> zoneEntities = ZoneBusiness.GetZoneList().Where(a => a.IfEnable).ToList();
                foreach (ZoneEntity zone in zoneEntities)
                {
                    List <ActionReport> subActionReports = actionReports.Where(a => a.ZoneId == zone.ZoneId && a.Mode == "Action").ToList();
                    string body = CreateMainZone(zone.ZoneName, subActionReports);
                    mail.Append(body);
                }
                mail.AppendLine("</div>");
            }
            return(mail.ToString());
        }
        private void ProductionEnvironment()
        {
            List <SmtpQueue> smtpQueues = SmtpQueueBusiness.GetList();
            SmtpQueue        lastReport = smtpQueues.OrderBy(a => a.Id).LastOrDefault();
            DateTime         date       = DateTime.Now.AddDays(-1);
            string           title      = date.ToString("MM/dd/yyyy");

            if (lastReport != null && lastReport.Title == title)
            {
                //已经生成了报表
            }
            else
            {
                //// 每天9开始统计前一天的数据
                //if (DateTime.Now > Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 09:00:00")))
                //{

                List <ZoneEntity> zoneEntities = ZoneBusiness.GetZoneList().Where(a => a.IfEnable).ToList();
                if (zoneEntities != null && zoneEntities.Count > 0)
                {
                    foreach (ZoneEntity zone in zoneEntities)
                    {
                        CreateActiveReportZoneProduction(zone, date);
                    }
                    //插入邮件发送队列
                    SmtpQueueBusiness.Add(new SmtpQueue
                    {
                        Title       = title,
                        Status      = 0,
                        CreatedTime = DateTime.Now,
                        SendedTime  = DateTime.Now,
                        Remark      = "",
                    });
                }
            }
            //}
        }
Пример #9
0
 public static void Edit(SmtpQueue item)
 {
     SmtpQueueAccess.Edit(item);
 }
Пример #10
0
 public static void Add(SmtpQueue item)
 {
     SmtpQueueAccess.Add(item);
 }