Пример #1
0
 /// <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
                         ))
                 );
         }
     }
 }
Пример #2
0
 /// <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                           //評估日/報導日
     });
 }
Пример #3
0
 /// <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
                            ));
     }
 }
Пример #4
0
        /// <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);
        }