private static void TestMail() { //string filename = "D:\\ATFS\\Data\\zTest\\2016\\09\\22\\100.pdf"; string filename = @"e:\ATFS\Data\TradeSystemCrypto\Reports\2018\09\19\101.pdf"; // string filename = @"E:\ATFS\Data\TradeSystemCrypto\Reports\2018\09\28\101.pdf"; //string filename = @"D:\ATFS\Data\TradeSystem\2016\09\22\100.pdf"; /* CMailer mailer = new CMailer(smtpServer: "smtp.bk.ru", * user: "******", * mailDomain: "bk.ru", * password: "******", * alarmer: null); * */ CMailer mailer = new CMailer(smtpServer: "ctc-trade.com", portSMTP: 25, user: "******", mailDomain: "ctc-trade.com", //password: "******", password: "******", alarmer: null, bUseEamilAsUserName: true, bEnableSSL: false); mailer.SendMail( toAddress: "*****@*****.**", //toAddress: "*****@*****.**", title: "Название отчета", stContent: "Содержание отчета", fileName: filename ); }
private void GenerateAccountsReports() { Log("GenerateAccountsReports was started"); //Get list of latest calcs for each trader which are were not report-processed. var lstLatestCalcedVM = _dbCommunicator.GetLatestCalcedVmData(_stockExchId); foreach (var dataLatestCalcedVMVal in lstLatestCalcedVM) { try { int currVmCalcId = (int)dataLatestCalcedVMVal["max_clearing_calced_vm_id"]; Log("Porocessing " + currVmCalcId); Log("Step 1 - preparing data for report"); var dataClearingCalsSummary = _dbCommunicator.GetPoslogClearingCalsSummary(currVmCalcId); if (IsDBNullCalcedVMVal(dataLatestCalcedVMVal) || IsDBNullSummaryVMVal(dataClearingCalsSummary[0])) { Log("Incorrect data. Continue."); continue; } CReportDataAccounts repDataAccounts = new CReportDataAccounts(_useRealServer, _client); repDataAccounts.GenStockExchResultsTable(StockExchName, dataLatestCalcedVMVal, dataClearingCalsSummary[0]); repDataAccounts.GenFooterTotalResultsTable(dataClearingCalsSummary[0]); var dataClearingCalsInstrumentsSummary = _dbCommunicator.GetPoslogClearingCalsInstrumentsSummary(currVmCalcId); repDataAccounts.GenDataInstrumentsResultsTable(dataClearingCalsInstrumentsSummary); var dataClearingCalsInstruments = _dbCommunicator.GetPoslogClearingCalsInstruments(currVmCalcId); //repData was set 2017-08-18 repDataAccounts.SetSessionBeginEnd(dataLatestCalcedVMVal); repDataAccounts.GenListVMDynamics(dataClearingCalsInstruments); var currentMonthOperations = _dbCommunicator.GetCurrentMonthOperations((int)dataLatestCalcedVMVal["account_trade_Id"], (DateTime)dataLatestCalcedVMVal["DtEnd"]); repDataAccounts.GenAccountOperationsTable(currentMonthOperations); // repData.SetSessionBeginEnd(dataLatestCalcedVMVal); // was before 2017-08-18 repDataAccounts.GenPoslogTable(dataClearingCalsInstruments); _pdfGeneratorAccounts = new CPDFGeneratorAccounts(repDataAccounts, _useRealServer, _stockExchId); string dirName = GetDirectory(repDataAccounts.DtSessionEnd); string filePath = dirName + "\\" + ((int)dataLatestCalcedVMVal["account_trade_Id"]).ToString("D3") + ".pdf"; CUtil.CreateDirIfNotExist(dirName); Log("Step 2 - generating PDF file"); _pdfGeneratorAccounts.GeneratePDFFile(filePath); Log("Step 3 - sending report by e-mail"); string stDt = ((DateTime)dataLatestCalcedVMVal["DtEnd"]).ToString("dd.MM.yyyy"); _mailer.SendMail( toAddress: dataLatestCalcedVMVal["email"].ToString(), title: "Торговый отчет за " + stDt, stContent: "Высылаем торговый отчет за " + stDt, fileName: filePath ); Log("Step 4 - updating send report flag"); _dbCommunicator.UpdateReportSent((int)dataLatestCalcedVMVal["max_clearing_calced_vm_id"]); } catch (Exception e) { Error("Error processing report", e); } } }