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(); } }
/// <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); } }
/// <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(); } }