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 = "", }); } } //} }
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 = "", }); } } //} }
private void Analyze(AnalyzeResult analyzeResult) { if (analyzeResult != null && analyzeResult.result != null) { List <AuditLogEntity> auditLogEntities = new List <AuditLogEntity>(); string key = "AnalyzeRatelimit_GetZoneList_Key"; List <ZoneEntity> zoneList = Utils.GetMemoryCache(key, () => { return(ZoneBusiness.GetZoneList()); }, 1440); string zoneID = analyzeResult.ZoneId; var zone = zoneList.FirstOrDefault(a => a.ZoneId == zoneID); if (zone != null) { string authEmail = zone.AuthEmail; string authKey = zone.AuthKey; var cloudflare = new CloudFlareApiService(zone.ZoneId, zone.AuthEmail, zone.AuthKey); //发送警报 Warn(analyzeResult); //开启RateLimit var logs = OpenRageLimit(zone, cloudflare, analyzeResult); auditLogEntities.AddRange(logs); //Ban IP //logs = BanIp(zone, cloudflare, analyzeResult); //auditLogEntities.AddRange(logs); //记录日志 InsertLogs(auditLogEntities); } } }