public string CalculateDiscountedRatesSimple(string date, string id) { long idYc = JsonConvert.DeserializeObject <Int32>(id); GetYcDefDic(); YieldCurveDefinition ycd = DataFeed.Repository.ycDefDic[idYc]; DateTime settlementDate = Convert.ToDateTime(date); GetDayCounterDic(); // shell be before Rate and YieldCurveData, cos those are using DayCounter inside ResponseDiscountedData tmp = CalculateDiscountedData(ycd, settlementDate, null, null); return(JsonConvert.SerializeObject(tmp)); }
ResponseDiscountedData CalculateDiscountedData(YieldCurveDefinition ycDef, DateTime settlementDate, List <EntryPoint> entryPoints, List <DateTime> discountDates) { ResponseDiscountedData result = new ResponseDiscountedData(); try { YieldCurveData tmp = new YieldCurveData(); tmp.settlementDate = settlementDate; tmp.settings = ycDef; if (entryPoints == null) { tmp.entryPointList = DataLayer.Repository.GetYieldCurveEntryPoint(ycDef.Id, settlementDate); } else { tmp.entryPointList = entryPoints; } if (discountDates == null) // use entry points dates { discountDates = new List <DateTime>(); foreach (var ep in tmp.entryPointList) { discountDates.Add(settlementDate.AddDays(ep.Duration)); } } QuantLibAdaptor.CalculateDiscountedRate(tmp, discountDates.ToList(), result.discountPoints); result.entryPoints = tmp.entryPointList; } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } result.Error = new CustomException(); result.Error.Message = ex.Message + ex.StackTrace; } return(result); }
public string CalculateDiscountedRates(string date, string id, string epl, string ddl) { long idYc = JsonConvert.DeserializeObject <Int32>(id); GetYcDefDic(); YieldCurveDefinition ycd = DataFeed.Repository.ycDefDic[idYc]; //DateTime settlementDate = JsonConvert.DeserializeObject<DateTime>(date); DateTime settlementDate = Convert.ToDateTime(date); List <EntryPoint> entryPoints = JsonConvert.DeserializeObject <List <EntryPoint> >(epl); List <DateTime> discountDates = JsonConvert.DeserializeObject <List <DateTime> >(ddl); ResponseDiscountedData tmp = CalculateDiscountedData(ycd, settlementDate, entryPoints, discountDates); return(JsonConvert.SerializeObject(tmp)); }