public override bool DoWork(List <string> soureFilePath, string saveFilePath) { DirectoryInfo dir = new DirectoryInfo(System.Environment.CurrentDirectory); StreamWriter wrtTxtFile = null; DataSet dataSet1 = new DataSet(); DataTable dt = new DataTable(); ReadXLSFile(soureFilePath); string dateFormat = string.Empty; if (listTables.Count == 0) { // Log.Write(@"D:\log.txt", "empty table"); } DateTime date = new DateTime(); StringBuilder sBuilder = new StringBuilder(); string rowString = ""; _sqlCommand = @"Select Account_Name,AccountSettings FROM [User_GUI_Account] where AccountSettings like '%Bing_Account_Name%'"; string header; try { System.Xml.XmlNodeList list = GetConvertionTypeNode(); // header = list[0].SelectNodes("tmpHeader")[0].Attributes["headers"].Value; //OLD dateFormat = (list[0].SelectNodes("DateFormat")[0]).InnerText; dateFormat = base.DateFormat; header = ReadHeaders(list[0].SelectNodes("tmpHeader")[0].Attributes); header = "Channel AccountName day_code " + header; header = header.Replace(@" ", "\t"); date = DateTime.Now; if (saveFilePath != "") { wrtTxtFile = new StreamWriter(saveFilePath, false, Encoding.Unicode); } else { //default wrtTxtFile = new StreamWriter(saveFilePath, //saveFilePath + "\\" + "CSV_EF_Yahoo_" + date.Day.ToString() + "." + date.Month.ToString() + "." + date.Year.ToString() + ".xls",//+DateTime.Now.Month.ToString().Substring(0,3)+"_"+ "Dec_22.12.09.xls", false, Encoding.Unicode); } } catch (Exception ex) { Log.Write(" ex6 ", ex); // WriteToEventLog("Converter: \n" + ex.ToString()); if (wrtTxtFile != null) { wrtTxtFile.Close(); wrtTxtFile.Dispose(); } return(false); } //Log.Write(@"sssssssssssssss()", "ecccccccccccccrrerA"); try { if (base.CurrecnyCode != string.Empty) { header += "CostConversionRate\tCostBeforeConversion"; } wrtTxtFile.WriteLine(header); // wrtTxtFile.WriteLine("Channel\tAccountName\tDay_Code\tHeadline\tDesc1\tDestURL\tAdgroup\tCampaign\tImps\tClicks\tCost\tPos"); try { // Get Accounts names into DataSet //{ // FillAccountNames2DataSet(); //} //Log.Write(@"111", "eoo "); FillAccountNames2DataSet(); //Log.Write(@"22", "e999 "); for (int i = 0; i < listTables.Count; i++) { dt = listTables[i]; System.Collections.Hashtable headersHash = base.BuildHeadersOrder(headersStrings, dt, 8, "Spend"); if (columnToConvertToUSD == -1) { Log.Write(" ERROR: columnToConvertToUSD == -1", LogMessageType.Error); return(false); } // double ConvertionRate = Convert.ToDouble( ConvertionRates[country]); for (int rowsCounter = 9; rowsCounter < dt.Rows.Count; rowsCounter++) { string cost = string.Empty; if (dt.Rows[rowsCounter][0].ToString() == "") { rowsCounter = 1 + dt.Rows.Count; } else { string account = base._account; account = FindAccountName(dt.Rows[rowsCounter][1].ToString(), "Bing_Account_Name", dt.Rows[rowsCounter][4].ToString()); if (account.Equals("")) { Log.Write("using errorAccountString because cannot find account " + dt.Rows[rowsCounter][4].ToString(), LogMessageType.Warning); account = base.errorAccountString; } sBuilder.Append("bing\t" + account); string tempDate = dt.Rows[rowsCounter][0].ToString(); string[] str = tempDate.Split(@"/".ToCharArray()); //date = new DateTime(Convert.ToInt32(str[2]), Convert.ToInt32(str[0]), Convert.ToInt32(str[1])); if (dateFormat.Substring(0, 1).Equals("m")) { string temp = str[0]; str[0] = str[1]; str[1] = temp; } date = new DateTime(Convert.ToInt32(str[2]), Convert.ToInt32(str[1]), Convert.ToInt32(str[0])); // date = DateTime.ParseExact(tempDate, dateFormat, null); // date = DateTime.ParseExact(dt.Rows[rowsCounter][0].ToString(), "MM/dd/yyyy", null); // date = (DateTime)dt.Rows[rowsCounter][0]; rowString = checkDateValidation(date); if (convertionRateDic[rowString] == null) { ConvertionRate = CurrencyManager.Convert(base.CurrecnyCode, "USD", rowString); convertionRateDic.Add(rowString, ConvertionRate); } else { ConvertionRate = Convert.ToDouble(convertionRateDic[rowString]); } //if (rowsCounter == 8000) // date.AddDays(1); if (rowString == null) //date is not valid { isValidDate = true; //initilize return(true); } sBuilder.Append("\t" + rowString); for (int k = 0; k < headersHash.Count; k++) { int columNumber = Convert.ToInt32(headersHash[k]); if (columNumber != -1) { if (columnToConvertToUSD == columNumber)//CONVERT TO USD! { cost = dt.Rows[rowsCounter][columNumber].ToString(); // cost = (Convert.ToDouble(cost) * ConvertionRate).ToString(); sBuilder.Append("\t" + (Convert.ToDouble(cost) * ConvertionRate).ToString()); } else { string value = dt.Rows[rowsCounter][columNumber].ToString(); int indexOfHttp = value.IndexOf("http"); if (indexOfHttp != -1 && value.IndexOf("param1") != -1) { value = value.Remove(0, indexOfHttp); } sBuilder.Append("\t" + value); } } } /* sBuilder.Append("\t" + dt.Rows[rowsCounter][2].ToString() + "\t" + dt.Rows[rowsCounter][3].ToString() + "\t" + dt.Rows[rowsCounter][4].ToString() + "\t" + dt.Rows[rowsCounter][5].ToString() + "\t" + dt.Rows[rowsCounter][7].ToString() + "\t" + dt.Rows[rowsCounter][8].ToString() + "\t" + dt.Rows[rowsCounter][9].ToString() + "\t" + dt.Rows[rowsCounter][12].ToString() + "\t" + dt.Rows[rowsCounter][13].ToString()); */ if (ConvertionRate != -1) { sBuilder.Append("\t" + ConvertionRate); sBuilder.Append("\t" + cost); } wrtTxtFile.WriteLine(sBuilder); sBuilder = new StringBuilder(); } } } } catch (Exception ex) { Log.Write("Noam didn't know what to do here.", ex); //Log.Write(@"sssxxxx)", "e " + e.Message); } wrtTxtFile.Close(); CopyFile(); wrtTxtFile.Dispose(); return(true); } catch (Exception ex) { //Log.Write(@"awerrrrrxx)", "e " + ex.Message); return(false); } }