private void FormatCName(DataStreamRicCreationBulkTemplate bulkTemp, string names) { if (names.EndsWith(".") && (names.Length + bulkTemp.NameSuffix.Length) <= 24) { names += bulkTemp.NameSuffix; } else if ((!names.EndsWith(".")) && (names.Length + 1 + bulkTemp.NameSuffix.Length) <= 24) { if (names.EndsWith(" ")) { names += bulkTemp.NameSuffix; } else { names += " " + bulkTemp.NameSuffix; } } else if (names.Length > 24) { names = names.Substring(0, 24); } bulkTemp.CName = names.PadRight(24, ' '); }
private string FormatOutputLine(List <DataStreamRicCreationInfo> ricCreations) { List <string> lines = new List <string>(); foreach (DataStreamRicCreationInfo item in ricCreations) { string temp = ""; string name1 = string.Empty; string name2 = string.Empty; string suffix = string.Empty; DataStreamRicCreationBulkTemplate bulkTemp = new DataStreamRicCreationBulkTemplate(); bulkTemp.Seqn = temp.PadRight(7, ' '); bulkTemp.Mnem = "MX:" + GetMnem(item.Ticker); if (string.IsNullOrEmpty(item.Sedol)) { string sedol = GetSedol(item.Isin); if (string.IsNullOrEmpty(sedol)) { sedol = temp.PadRight(9, ' '); } else { sedol = "UK" + sedol; } bulkTemp.Sedol = sedol; } else { bulkTemp.Sedol = "UK" + item.Sedol; } if (item.Ticker.Length > 3) { string ticker = item.Ticker; ticker = ticker.Substring(0, ticker.Length - 1) + "'" + ticker.Substring(ticker.Length - 1, 1) + "'"; bulkTemp.Name1 = ticker.PadRight(24, ' '); bulkTemp.Name2 = string.Empty.PadRight(24, ' '); } else { bulkTemp.Name1 = item.Ticker.PadRight(24, ' '); bulkTemp.Name2 = string.Empty.PadRight(24, ' '); } if (item.AssetCategory.CompareTo("PRF") == 0 || item.AssetCategory.CompareTo("CPR") == 0 || item.AssetCategory.CompareTo("PREFERRED") == 0) { FormatBulkNames(item.SecurityLongDescription, 24, 24, nameInputType.Name, ref name1, ref name2, ref suffix); bulkTemp.NameSuffix = suffix; } else { FormatBulkNames(item.CompanyName, 24, 24, nameInputType.Name, ref name1, ref name2, ref suffix); bulkTemp.NameSuffix = suffix; } if (item.AssetCategory.CompareTo("PRF") == 0 || item.AssetCategory.CompareTo("CPR") == 0 || item.AssetCategory.CompareTo("PREFERRED") == 0) { FormatCName(bulkTemp, item.CompanyName); } else { name1 = bulkTemp.Name1.Trim(); name2 = bulkTemp.Name2.Trim(); string names = string.Empty; if (!name1.EndsWith(".")) { names = name1 + " " + name2; } else { names = name1 + name2; } FormatCName(bulkTemp, names); } bulkTemp.Fname1 = string.Empty.PadRight(19, ' '); bulkTemp.Fname2 = string.Empty.PadRight(24, ' '); bulkTemp.Bdate = temp.PadRight(8, ' '); bulkTemp.DefMki = "MX"; bulkTemp.Remk = string.Empty.PadRight(4, ' '); bulkTemp.Mic = string.Empty.PadRight(3, ' '); bulkTemp.Nosh = "1"; bulkTemp.Mnem2 = string.Empty.PadRight(12, ' '); if (item.Isin == string.Empty || item.Isin == null) { bulkTemp.Isin = string.Empty.PadRight(12, ' '); } else { bulkTemp.Isin = item.Isin; } bulkTemp.Geog = "065"; bulkTemp.Dcur = "035"; bulkTemp.Secty = "EQ"; bulkTemp.Grpi = "116"; bulkTemp.Cusip = "MX" + item.Ticker.Replace("*", "").PadRight(10, ' '); if (item.CompanyName.Contains("ADR")) { bulkTemp.Qci = "22"; } else if (item.CompanyName.Contains("GDR")) { bulkTemp.Qci = "D5"; } else { bulkTemp.Qci = " "; } if (string.Compare(item.RIC, item.ReutersEditorialRIC) == 0) { bulkTemp.PARENT_RIC = string.Empty; } else { bulkTemp.PARENT_RIC = item.ReutersEditorialRIC; } string line = string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\",\"{6}\",\"{7}\",\"{8}\",\"{9}\",\"{10}\",\"{11}\",\"{12}\",\"{13}\",\"{14}\",\"{15}\",\"{16}\",\"{17}\",\"{18}\",\"{19}\"", bulkTemp.Mnem, bulkTemp.Sedol, bulkTemp.Name1, bulkTemp.Name2, bulkTemp.Bdate, bulkTemp.DefMki, bulkTemp.Mnem2, bulkTemp.Isin, bulkTemp.CName, bulkTemp.Geog, bulkTemp.Dcur, bulkTemp.Remk, bulkTemp.Secty, bulkTemp.Grpi, bulkTemp.Fname1, bulkTemp.Mic, bulkTemp.Fname2, bulkTemp.Cusip, bulkTemp.Qci, bulkTemp.PARENT_RIC); //不包含重复内容 if (!lines.Contains(line)) { lines.Add(line); } System.Threading.Thread.Sleep(5000); } string outputLine = string.Join("\r\n", lines.ToArray()); return(outputLine); }
private string FormatOutputLine(List <DataStreamRicCreationInfo> ricCreations) { List <string> lines = new List <string>(); foreach (DataStreamRicCreationInfo item in ricCreations) { string temp = ""; string name1 = string.Empty; string name2 = string.Empty; string suffix = string.Empty; DataStreamRicCreationBulkTemplate bulkTemp = new DataStreamRicCreationBulkTemplate(); bulkTemp.Seqn = temp.PadRight(7, ' '); bulkTemp.Mnem = "PH:" + GetMnem(item.Ticker); if (string.IsNullOrEmpty(item.Sedol)) { string sedol = GetSedol(item.Isin); if (string.IsNullOrEmpty(sedol)) { sedol = temp.PadRight(9, ' '); } else { sedol = "UK" + sedol; } bulkTemp.Sedol = sedol; } else { bulkTemp.Sedol = "UK" + item.Sedol; } if (item.AssetCategory.CompareTo("PRF") == 0 || item.AssetCategory.CompareTo("CPR") == 0 || item.AssetCategory.CompareTo("PREFERRED") == 0) { FormatBulkNames(item.SecurityLongDescription, 24, 24, nameInputType.Name, ref name1, ref name2, ref suffix); bulkTemp.NameSuffix = suffix; bulkTemp.Name1 = name1; bulkTemp.Name2 = name2; FormatBulkNames(item.SecurityLongDescription, 19, 24, nameInputType.Fname, ref name1, ref name2, ref suffix); bulkTemp.Fname1 = name1; bulkTemp.Fname2 = name2; } else { FormatBulkNames(item.CompanyName, 24, 24, nameInputType.Name, ref name1, ref name2, ref suffix); bulkTemp.NameSuffix = suffix; bulkTemp.Name1 = name1; bulkTemp.Name2 = name2; FormatBulkNames(item.CompanyName, 19, 24, nameInputType.Fname, ref name1, ref name2, ref suffix); bulkTemp.Fname1 = name1; bulkTemp.Fname2 = name2; } if (item.AssetCategory.CompareTo("PRF") == 0 || item.AssetCategory.CompareTo("CPR") == 0 || item.AssetCategory.CompareTo("PREFERRED") == 0) { FormatCName(bulkTemp, item.CompanyName); } else { name1 = bulkTemp.Name1.Trim(); name2 = bulkTemp.Name2.Trim(); string names = string.Empty; if (!name1.EndsWith(".")) { names = name1 + " " + name2; } else { names = name1 + name2; } FormatCName(bulkTemp, names); } if (item.FirstTradingDate.Equals("-9999999")) { bulkTemp.Bdate = temp.PadRight(8, ' '); } else { // string bdate = DateTime.ParseExact(item.FirstTradingDate, "ddMMyyyy", CultureInfo.InvariantCulture).ToString("dd/MM/yy", DateTimeFormatInfo.InvariantInfo); string bdate = item.FirstTradingDate.Substring(6, 2) + "/" + item.FirstTradingDate.Substring(4, 2) + "/" + item.FirstTradingDate.Substring(2, 2); bulkTemp.Bdate = bdate; } bulkTemp.DefMki = "MN"; bulkTemp.Remk = string.Empty.PadRight(4, ' '); bulkTemp.Mic = string.Empty.PadRight(3, ' '); bulkTemp.Nosh = "1"; bulkTemp.Mnem2 = "PH" + item.Ticker.PadRight(10, ' '); if (item.Isin == string.Empty || item.Isin == null) { bulkTemp.Isin = string.Empty.PadRight(12, ' '); } else { bulkTemp.Isin = item.Isin; } bulkTemp.Geog = "057"; bulkTemp.Dcur = "055"; if (item.ThomsonReutersClassificationScheme.CompareTo("ETF") == 0) { bulkTemp.Secty = "ET"; bulkTemp.Grpi = "159"; } else { bulkTemp.Secty = "EQ"; bulkTemp.Grpi = "116"; } bulkTemp.Cusip = string.Empty.PadRight(12, ' '); if (item.CompanyName.Contains("ADR")) { bulkTemp.Qci = "22"; } else if (item.CompanyName.Contains("GDR")) { bulkTemp.Qci = "D5"; } else { bulkTemp.Qci = " "; } if (string.Compare(item.RIC, item.ReutersEditorialRIC) == 0) { bulkTemp.PARENT_RIC = string.Empty; } else { bulkTemp.PARENT_RIC = item.ReutersEditorialRIC; } string line = string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\",\"{6}\",\"{7}\",\"{8}\",\"{9}\",\"{10}\",\"{11}\",\"{12}\",\"{13}\",\"{14}\",\"{15}\",\"{16}\",\"{17}\",\"{18}\",\"{19}\"", bulkTemp.Mnem, bulkTemp.Sedol, bulkTemp.Name1, bulkTemp.Name2, bulkTemp.Bdate, bulkTemp.DefMki, bulkTemp.Mnem2, bulkTemp.Isin, bulkTemp.CName, bulkTemp.Geog, bulkTemp.Dcur, bulkTemp.Remk, bulkTemp.Secty, bulkTemp.Grpi, bulkTemp.Fname1, bulkTemp.Mic, bulkTemp.Fname2, bulkTemp.Cusip, bulkTemp.Qci, bulkTemp.PARENT_RIC); //不包含重复内容 if (!lines.Contains(line)) { lines.Add(line); } System.Threading.Thread.Sleep(5000); } string outputLine = string.Join("\r\n", lines.ToArray()); return(outputLine); }