private string getFidValueForEnglishVersionFile(BrokerInfo brokerInfo) { string value = string.Empty; value += "\""; value += brokerInfo.hall.PadRight(9).Substring(0, 9); value += brokerInfo.terminal.PadRight(10).Substring(0, 10); if (!string.IsNullOrEmpty(brokerInfo.longName)) { value += brokerInfo.longName.PadRight(45).Substring(0, 45); value += brokerInfo.shortName.PadRight(16).Substring(0, 16); } else { value += brokerInfo.originalName.PadRight(45).Substring(0, 45); value += brokerInfo.originalName.PadRight(16).Substring(0, 16); } value += "\""; return(value); }
private string getFidValueForChineseVersionFile(BrokerInfo brokerInfo) { string value = string.Empty; value += "\""; value += brokerInfo.hall.PadRight(9).Substring(0, 8); value += brokerInfo.terminal.PadRight(10).Substring(0, 10); if (!string.IsNullOrEmpty(brokerInfo.ChineseName)) { if (!string.IsNullOrEmpty(brokerInfo.ChineseLongName)) { value += formatStringForChinese(brokerInfo.ChineseLongName, 42, 58); int bytesNumForChineseShortName = 96 - Encoding.UTF8.GetBytes(value).Length + 1; value += formatStringForChinese(brokerInfo.ChineseShortName, 24, bytesNumForChineseShortName); } if (string.IsNullOrEmpty(brokerInfo.ChineseLongName)) { value += formatStringForChinese(brokerInfo.ChineseName, 42, 58); int bytesNumForChineseShortName = 96 - Encoding.UTF8.GetBytes(value).Length + 1; value += formatStringForChinese(brokerInfo.ChineseName, 24, bytesNumForChineseShortName); } } else { if (!string.IsNullOrEmpty(brokerInfo.longName)) { value += formatStringForChinese(brokerInfo.longName, 42, 58); int bytesNumForChineseShortName = 96 - Encoding.UTF8.GetBytes(value).Length + 1; value += formatStringForChinese(brokerInfo.shortName, 24, bytesNumForChineseShortName); } else { value += formatStringForChinese(brokerInfo.originalName, 42, 58); int bytesNumForChineseShortName = 96 - Encoding.UTF8.GetBytes(value).Length + 1; value += formatStringForChinese(brokerInfo.originalName, 24, bytesNumForChineseShortName); } } value += "\""; return(value); }
//Get all the broker information from the current csv file public List <BrokerInfo> GetBrokerList(string currentCSVFilePath) { List <BrokerInfo> brokerList = new List <BrokerInfo>(); using (ExcelApp app = new ExcelApp(false)) { var workbook = ExcelUtil.CreateOrOpenExcelFile(app, currentCSVFilePath); Worksheet worksheet = workbook.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet; if (worksheet == null) { LogMessage(string.Format("Cannot get worksheet {0} from workbook {1}", Path.GetFileNameWithoutExtension(currentCSVFilePath), workbook.Name)); } int lastUsedRow = worksheet.UsedRange.Row + worksheet.UsedRange.Rows.Count - 1; using (ExcelLineWriter reader = new ExcelLineWriter(worksheet, 2, 1, ExcelLineWriter.Direction.Down)) { while (reader.Row < lastUsedRow) { try { if (!string.IsNullOrEmpty(ExcelUtil.GetRange(reader.Row, 1, worksheet).Text.ToString())) { string brokerNumbers = ExcelUtil.GetRange(reader.Row, 2, worksheet).Text.ToString(); if ((brokerNumbers != null) && (brokerNumbers != "")) { string originalName = ExcelUtil.GetRange(reader.Row, 3, worksheet).Text.ToString().Trim(); string ChineseName = ExcelUtil.GetRange(reader.Row, 4, worksheet).Text.ToString().Trim(); if (brokerList.Count == 0 || originalName != brokerList[brokerList.Count - 1].originalName) { if (brokerList.Count != 0 && brokerNumbers == brokerList[brokerList.Count - 1].brokerNumbers) { reader.PlaceNext(reader.Row + 1, 1); continue; } Dictionary <int, BrokerInfo> brokerGroupMap = new Dictionary <int, BrokerInfo>(); foreach (string id in brokerNumbers.Split(',')) { int curId = int.Parse(id.Trim()); int part1 = curId / 10; int part2 = curId % 10; if (brokerGroupMap.ContainsKey(part1)) { brokerGroupMap[part1].IdList.Add(part2); } else { BrokerInfo brokerInfo = new BrokerInfo(); brokerInfo.ChineseName = ChineseName.Trim(); brokerInfo.originalName = originalName; brokerInfo.brokerNumbers = brokerNumbers; brokerInfo.GetBrokerLongAndShortName(); if (brokerInfo.err != string.Empty) { Logger.Log(brokerInfo.err); brokerInfo.err = string.Empty; } brokerInfo.GetBrokerChineseLongAndShortName(); if (brokerInfo.err != string.Empty) { Logger.Log(brokerInfo.err); brokerInfo.err = string.Empty; } brokerInfo.GroupId = part1; brokerInfo.IdList = new List <int>(); brokerInfo.IdList.Add(part2); brokerGroupMap.Add(part1, brokerInfo); } } foreach (BrokerInfo broker in brokerGroupMap.Values) { broker.hall = broker.GetHallInfo(); broker.terminal = broker.GetTerminalInfo(); if (!brokerList.Contains(broker)) { brokerList.Add(broker); } } } } reader.PlaceNext(reader.Row + 1, 1); } else { break; } } catch (Exception ex) { LogMessage(string.Format("msg:{0}", ex.Message)); } } } workbook.Close(false, workbook.FullName, false); } brokerList.Sort(); return(brokerList); }