private RateSourceData GetRate_Bloomberg(int SecurityID, DateTime ValuationDate) { SqlCommand sqlCom = new SqlCommand("spOTCOptionPrice_GetRiskFreeRate_Bloomberg"); sqlCom.CommandType = CommandType.StoredProcedure; sqlCom.Parameters.Add(new SqlParameter("@SecurityID", SecurityID)); sqlCom.Parameters.Add(new SqlParameter("@PriceDate", ValuationDate)); DataSet ds = db.FetchData(sqlCom); RateSourceData rsd = new RateSourceData(); if (ds.Tables[0].Rows.Count != 0) { DataRow dr = ds.Tables[0].Rows[0]; try { rsd.Source = InputSourceData.InputSource.Bloomberg; rsd.Rate = double.Parse(dr["MaturityRate"].ToString()); rsd.CaptureTime = DateTime.ParseExact(dr["CaptureTime"].ToString(), "dd/MM/yyyy HH:mm:ss", null); rsd.BBData_PreviousTerm = new BBData() { Ticker = dr["PreviousTicker"].ToString(), Field = "PX_YEST_CLOSE", Value = double.Parse(dr["PreviousRate"].ToString()) }; rsd.BBData_NextTerm = new BBData() { Ticker = dr["NextTicker"].ToString(), Field = "PX_YEST_CLOSE", Value = double.Parse(dr["NextRate"].ToString()) }; } catch { // Problem with data so don't return half a class, return as if nothing was obtained from db rsd = new RateSourceData(); } } return(rsd); }
public void Parse_ThrowsRatesWereNotParsed_OnNullRateDetail_Test() { // Arrange var rateSourceData = new RateSourceData(); // Assert Assert.Throws<RatesWereNotParsedException>(() => rateSourceData.Parse(Currency.RUB)); }
public void Parse_UnixTime_Test() { // Arrange var rateSourceData = new RateSourceData { Stamp = 0, RatesValues = new RateValuesData() }; // Act var rate = rateSourceData.Parse(Currency.RUB); // Assert Assert.AreEqual(rate.Stamp.Date, new DateTime(1970, 1, 1, 0, 0, 0)); }
public double Parse_Currency_Test(Currency currency) { // Arrange var rateSourceData = new RateSourceData { RatesValues = new RateValuesData { EUR = 1, GBP = 2, JPY = 3, RUB = 4, USD = 5, } }; // Act var rate = rateSourceData.Parse(currency); // Assert return rate.Value; }
private RateSourceData GetRate_ManualOverride(int SecurityID, DateTime ValuationDate) { SqlCommand sqlCom = new SqlCommand("spOTCOptionPrice_GetRiskFreeRate_Default"); sqlCom.CommandType = CommandType.StoredProcedure; sqlCom.Parameters.Add(new SqlParameter("@SecurityID", SecurityID)); DataSet ds = db.FetchData(sqlCom); RateSourceData rsd = new RateSourceData(); if (ds.Tables[0].Rows.Count != 0) { DataRow dr = ds.Tables[0].Rows[0]; //if the value is null ignore (i.e. is missing) if (dr["DefaultRiskFreeRate"] != DBNull.Value) { rsd.Source = InputSourceData.InputSource.Override; rsd.Rate = double.Parse(dr["DefaultRiskFreeRate"].ToString()); rsd.CaptureTime = DateTime.ParseExact(dr["CaptureTime"].ToString(), "dd/MM/yyyy HH:mm:ss", null); } } return(rsd); }