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


                );
        }
Exemple #2
0
        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);
                }
            }
        }