예제 #1
0
 protected override void Start()
 {
     Logger.Log("Starting Task");
     try
     {
         excelPath = DownladExcel();
         GetAbbreviation();
         ReadExcel();
         LoginToWebsite();
         foreach (MutualFund fund in funds)
         {
             if (fund.Loc.Length == 9)
             {
                 Search(fund.Loc);
                 GetSummary();
                 fund.Isin = GetIsinFromIssueDetail(fund.Loc);
             }
         }
         CreateExcel();
         SendEmail();
         Logger.Log("Task finished");
     }
     catch (Exception ex)
     {
         Logger.Log("Error: " + ex.Message, Logger.LogType.Error);
         throw new Exception("Task failed: " + ex.Message, ex);
     }
     finally
     {
         app.Dispose();
     }
 }
예제 #2
0
        /// <summary>
        /// Creating new CSV with requested companies (new IPOs)
        /// </summary>
        /// <param></param>
        /// <returns></returns>
        private void GenerateCSV()
        {
            var app = new ExcelApp(false, false);

            if (app.ExcelAppInstance == null)
            {
                string msg = "Excel could not be started. Check that your office installation and project reference are correct !";
                LogMessage(msg, Logger.LogType.Error);
                return;
            }
            try
            {
                _resultFilename = _configObj.ResultsWorkbookPath.Replace(".csv", "_" + DateTime.Now.ToString("ddMMM_HH_mm_ss") + ".csv");
                Workbook  workbook  = ExcelUtil.CreateOrOpenExcelFile(app, _resultFilename);
                Worksheet worksheet = workbook.Worksheets[1] as Worksheet;

                for (int column = 0; column < _xlsTitle.Count; column++)
                {
                    worksheet.Cells[1, column + 1] = _xlsTitle[column];
                }
                for (int line = 2; line <= ipoList.Count + 1; line++)
                {
                    for (int column = 1; column <= _xlsTitle.Count; column++)
                    {
                        if (column == 5 || column == 6)
                        {
                            DateTime formatDate = DateTime.FromOADate(Convert.ToDouble(ipoList[line - 2][column - 1]));
                            worksheet.Cells[line, column] = formatDate.ToString("d");
                        }
                        else
                        {
                            worksheet.Cells[line, column] = ipoList[line - 2][column - 1];
                        }
                    }
                }
                app.ExcelAppInstance.AlertBeforeOverwriting = false;
                AddResult("Result file", _resultFilename, "csv");
                workbook.SaveAs(workbook.FullName, XlFileFormat.xlCSV, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                LogMessage("Generated CSV file Successfully. Filepath is " + _resultFilename);
                workbook.Close();
            }
            catch (Exception ex)
            {
                string msg = "Cannot generate CSV file :" + ex;
                LogMessage(msg, Logger.LogType.Error);
            }
            finally
            {
                app.Dispose();
                File.Delete(_targetFilePath);
            }
        }
예제 #3
0
        /// <summary>
        /// Parsing CSV Finding new IPOs
        /// </summary>
        /// <param></param>
        /// <returns></returns>
        private void ReadCSV()
        {
            var app = new ExcelApp(false, false);

            if (app.ExcelAppInstance == null)
            {
                string msg = "Excel could not be started. Check that your office installation and project reference are correct !";
                Logger.Log(msg, Logger.LogType.Error);
                return;
            }
            try
            {
                Workbook  workbook  = ExcelUtil.CreateOrOpenExcelFile(app, _targetFilePath);
                Worksheet worksheet = workbook.Worksheets[1] as Worksheet;

                double yesterday = DateTime.Now.AddDays(-2).ToOADate();
                double firstDate = DateTime.Parse("15-Apr-13").ToOADate();
                string country   = String.Empty;

                for (int line = 2; worksheet.get_Range("C" + line, Type.Missing).Value2 != null; line++)
                {
                    var    newIpo      = new List <string>();
                    double createStamp = Convert.ToDouble(worksheet.Range["E" + line, Type.Missing].Value2.ToString());
                    double updateStamp = Convert.ToDouble(worksheet.Range["F" + line, Type.Missing].Value2.ToString());
                    country = worksheet.Range["M" + line, Type.Missing].Value2.ToString();

                    if (((updateStamp >= yesterday && createStamp >= firstDate) || createStamp >= yesterday) &&
                        _countries.Contains(country))
                    {
                        if (!updatedCountries.Contains(country))
                        {
                            updatedCountries.Add(country);
                        }
                        for (int column = 0; column < _xlsTitle.Count; column++)
                        {
                            newIpo.Add(worksheet.Range[Alphabet.Substring(column, 1) + line, Type.Missing].Value2.ToString());
                        }
                        ipoList.Add(newIpo);
                    }
                }
                workbook.Close();
            }
            catch (Exception ex)
            {
                string msg = "Cannot read CSV file :" + ex;
                LogMessage(msg, Logger.LogType.Error);
            }
            finally
            {
                app.Dispose();
            }
        }