/// <summary> /// 判斷 commpany 是否新增 /// </summary> /// <param name="rating">評等內容</param> /// <param name="ratingDate">評等時間</param> /// <param name="bondNumber">債券編號</param> /// <param name="bloombergField">Bloomberg評等欄位名稱</param> /// <param name="org">評等機構</param> /// <param name="commpanyData">Commpany要新增的資料</param> private void validateCommpany( string rating, string ratingDate, string bondNumber, string bloombergField, RatingOrg org, List <Rating_Info> commpanyData ) { rating = fr.forRating(rating); //ForMate Rating if (!rating.IsNullOrWhiteSpace() && !nullarr.Contains(rating.Trim())) //Commpany評等判斷 { commpayInfo cInfo = new commpayInfo(); if (info.TryGetValue(bondNumber.FormatEquity(), out cInfo)) { cInfo.Bond_Number.ForEach( x => commpanyData.Add( saveCommpany( rating, ratingDate, x, bloombergField, cInfo.Rating_Object, org )) ); } } }
/// <summary> /// return new Rating_Info (sample) /// </summary> /// <param name="rating">評等內容</param> /// <param name="ratingDate">評等時間</param> /// <param name="bondNumber">債券編號</param> /// <param name="bloombergField">Bloomberg評等欄位名稱</param> /// <param name="org">評等機構</param> /// <returns></returns> private Rating_Info saveSample( string rating, string ratingDate, string bondNumber, string bloombergField, RatingOrg org ) { return(new Rating_Info() { Bond_Number = bondNumber.Trim(), //債券編號 Rating_Date = ratingDate.StringToDateTimeN(), //評等時間 Rating_Object = RatingObject.Bonds.GetDescription(), //評等對象(發行人,債項,保證人) Rating = rating.Trim(), //評等內容 RTG_Bloomberg_Field = bloombergField, //Bloomberg評等欄位名稱 Rating_Org = org.GetDescription(), //評等機構 Report_Date = reportDateDt //評估日/報導日 }); }
/// <summary> /// 判斷 sample 是否新增 /// </summary> /// <param name="rating">評等內容</param> /// <param name="ratingDate">評等時間</param> /// <param name="bondNumber">債券編號</param> /// <param name="bloombergField">Bloomberg評等欄位名稱</param> /// <param name="org">評等機構</param> /// <param name="sampleData">Sample要新增的資料</param> private void validateSample( string rating, string ratingDate, string bondNumber, string bloombergField, RatingOrg org, List <Rating_Info> sampleData ) { rating = fr.forRating(rating); //ForMate Rating if (!rating.IsNullOrWhiteSpace() && !nullarr.Contains(rating.Trim())) //Sample評等判斷 { sampleData.Add(saveSample( rating, ratingDate, bondNumber, bloombergField, org )); } }
/// <summary> /// 修正FITCH ISSUER 錯誤資料 /// </summary> /// <param name="rating"></param> /// <param name="org"></param> /// <param name="Bonds"></param> /// <returns></returns> public string Flight(string rating, RatingOrg org, bool Bonds) { if (rating.IsNullOrWhiteSpace()) { return(string.Empty); } string value = rating.Trim(); if (!Bonds) { //*修正 S&P ISSUER 錯誤資料* //CURR_SP_ISSUE AS CURR_SP_ISSUE1, if (org.Equals(RatingOrg.SP)) { return(value); } //*修正 MOODY'S ISSUE 錯誤資料* //CASE WHEN CURR_MOODYS_ISSUE = 'Baa2 *-' THEN 'Baa2' //ELSE CURR_MOODYS_ISSUE END AS CURR_MOODYS_ISSUE1, if (org.Equals(RatingOrg.Moody)) { if ("Baa2 *-".Equals(value)) { return("Baa2"); } return(value); } //*修正FITCH ISSUE 錯誤資料* //CASE WHEN CURR_FITCH_ISSUE like '%twn%' THEN '' //WHEN CURR_FITCH_ISSUE = '#N/A N/A' THEN '' //ELSE CURR_FITCH_ISSUE END AS CURR_FITCH_ISSUE1, if (org.Equals(RatingOrg.Fitch)) { if (value.IndexOf("twn") > -1) { return(string.Empty); } if ("#N/A N/A".Equals(value)) { return(string.Empty); } return(value); } //*修正 FITCH ISSUE-->惠譽台灣* //CASE WHEN CURR_FITCH_ISSUE like '%twn%' THEN CURR_FITCH_ISSUE //ELSE '' END AS CURR_FITCH_TW_ISSUE1, if (org.Equals(RatingOrg.FitchTwn)) { if (value.IndexOf("twn") > -1) { return(value); } return(string.Empty); } } if (Bonds) { //*修正 S&P ISSUER 錯誤資料* //CURR_SP_ISSUE AS CURR_SP_ISSUE1, if (org.Equals(RatingOrg.SP)) { return(rating); } //*修正MOODY'S ISSUER 錯誤資料* //CASE WHEN CURR_MOODYS_ISSUER = 'Baa2 /*-' THEN 'Baa2' //ELSE CURR_MOODYS_ISSUER END AS CURR_MOODYS_ISSUER1, if (org.Equals(RatingOrg.Moody)) { if ("Baa2 *-".Equals(value)) { return("Baa2"); } return(value); } //*修正FITCH ISSUER 錯誤資料* //CASE WHEN CURR_FITCH_ISSUER like '%twn%' THEN '' //WHEN CURR_FITCH_ISSUER = '#N/A N/A' THEN '' //WHEN CURR_FITCH_ISSUER = 'BBBu' THEN 'BBB' //WHEN CURR_FITCH_ISSUER = 'A-u' THEN 'A' //WHEN CURR_FITCH_ISSUER = 'A+u' THEN 'A' //ELSE CURR_FITCH_ISSUER END AS CURR_FITCH_ISSUER1, if (org.Equals(RatingOrg.Fitch)) { if (value.IndexOf("twn") > -1) { return(string.Empty); } if ("#N/A N/A".Equals(value)) { return(string.Empty); } if ("BBBu".Equals(value)) { return("BBB"); } if ("A-u".Equals(value) || "A+u".Equals(value)) { return("A"); } return(value); } //*修正FITCH ISSUER--> 惠譽台灣* //CASE WHEN CURR_FITCH_ISSUER like '%twn%' THEN CURR_FITCH_ISSUER //ELSE ' ' END AS CURR_FITCH_TW_ISSUER1 if (org.Equals(RatingOrg.FitchTwn)) { if (value.IndexOf("twn") > -1) { return(value); } return(string.Empty); } } return(value); }