private void ProcessBreakerReports() { DateTime today = DateTime.Now; DateTime firstOfMonth = today.AddDays(1 - today.Day).AddMonths(-1); DateTime endOfMonth = firstOfMonth.AddMonths(1).AddDays(-1); AllBreakersReport report = new AllBreakersReport(firstOfMonth, endOfMonth); byte[] pdf = report.createPDF(); if (pdf == null) { return; } byte[] csv = ExportAllToCSV(report.DataTable, firstOfMonth, endOfMonth); if (csv == null) { return; } using (MemoryStream pdfStream = new MemoryStream(pdf)) using (MemoryStream csvStream = new MemoryStream(csv)) { string fileName = "AllBreakersReport_" + firstOfMonth.ToString("MM_dd_yyyy") + "_" + endOfMonth.ToString("MM_dd_yyyy"); string pdfContentType = "application/pdf"; string csvContentType = "text/csv"; string pdfName = fileName + ".pdf"; string csvName = fileName + ".csv"; List <Attachment> attachments = new List <Attachment>() { new Attachment(pdfStream, pdfName, pdfContentType), new Attachment(csvStream, csvName, csvContentType) }; using (DataContext dataConext = new DataContext("systemSettings")) { EmailWriter emailWriter = new EmailWriter(dataConext, PQReportsSettings, EmailSettings); emailWriter.SendEmailWithAttachment(BreakerReportsSettings.EmailList.Split(',').ToList(), $"Breaker Report for {fileName}", "", attachments); } } }
private void ProcessPQReports() { DateTime today = DateTime.Now; DateTime firstOfMonth = today.AddDays(1 - today.Day).AddMonths(-1); DateTime endOfMonth = firstOfMonth.AddMonths(1).AddDays(-1); using (DataContext dataContext = new DataContext("systemSettings")) { // TODO: There is no EmailGroupAssetGroup IEnumerable <Meter> meters = dataContext.Table <Meter>().QueryRecordsWhere("ID IN (SELECT MeterID FROM MeterAssetGroup WHERE AssetGroupID IN (SELECT AssetGroupID FROM EmailGroupAssetGroup WHERE EmailGroupID = (SELECT ID FROM EmailGroup WHERE Name = 'PQ Report')))"); foreach (Meter meter in meters) { ProcessMonthlyReport(meter, firstOfMonth, endOfMonth, dataContext); } EmailWriter emailWriter = new EmailWriter(dataContext, PQReportsSettings, EmailSettings); emailWriter.Execute(firstOfMonth.Month, firstOfMonth.Year); } }