ResponseDayCounterData GetDayCounterDic() { ResponseDayCounterData result = new ResponseDayCounterData(); try { var dc = DataLayer.Repository.GetDayCounters(); foreach (DayCounter i in dc) { if (i != null && !String.IsNullOrEmpty(i.ClassName) && QuantLibAdaptor.GetDayCounterInformation(i) ) { result.DayCounterDic[i.Id] = i; } } DataLayer.Repository.DayCounterDic = result.DayCounterDic; } 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 GetDayCounter(string id) { long idDc = JsonConvert.DeserializeObject <Int32>(id); ResponseDayCounterData tmp = GetDayCounterDic(); return(JsonConvert.SerializeObject(tmp.DayCounterDic[idDc])); }
/* * public string Init(DateTime settlementDate) * { * ResponseInit tmp = InitInternal(settlementDate); * return JsonConvert.SerializeObject(tmp); * } * ResponseInit InitInternal(DateTime settlementDate) * { * ResponseInit result = new ResponseInit(); * try * { * // needs quantlib class factory * result.dc = GetDayCounterDic(); // shell be before Rate and YieldCurveData, cos those are using DayCounter inside * result.ccy = GetCurrencyDic(); * result.r = GetRateDic(); * result.b = GetBondDic(); * * // can be in local data storage * //result.yc = GetYieldCurveDataDic(); * result.ycf = GetYcFamilyDic(); * result.xr = GetXRateDic(); * result.edh = GetEntryPointHistoryList(settlementDate, null); // do it after rate/bond cos it uses Rate / Bond information (from QuantLib) inside * result.xrh = GetXRateHistoryList(settlementDate, null); * } * catch (Exception ex) * { * while (ex.InnerException != null) * ex = ex.InnerException; * * result.Error = new CustomException(); * result.Error.Message = ex.Message + ex.StackTrace; * } * * if ((result.dc.Error != null) || * (result.yc.Error != null) || * (result.ycf.Error != null) || * (result.ccy.Error != null) || * (result.r.Error != null) || * (result.b.Error != null) || * (result.xr.Error != null) || * (result.edh.Error != null) || * (result.xrh.Error != null)) * { * result.Error = new CustomException(); * if (result.dc.Error != null) * result.Error.Message = result.dc.Error.Message; * if (result.yc.Error != null) * result.Error.Message = result.Error.Message + result.yc.Error.Message; * if (result.ycf.Error != null) * result.Error.Message = result.Error.Message + result.ycf.Error.Message; * if (result.ccy.Error != null) * result.Error.Message = result.Error.Message + result.ccy.Error.Message; * if (result.r.Error != null) * result.Error.Message = result.Error.Message + result.r.Error.Message; * if (result.b.Error != null) * result.Error.Message = result.Error.Message + result.b.Error.Message; * if (result.xr.Error != null) * result.Error.Message = result.Error.Message + result.xr.Error.Message; * if (result.edh.Error != null) * result.Error.Message = result.Error.Message + result.edh.Error.Message; * if (result.xrh.Error != null) * result.Error.Message = result.Error.Message + result.xrh.Error.Message; * * } * return result; * } */ public string GetDayCounters() { ResponseDayCounterData tmp = GetDayCounterDic(); return(JsonConvert.SerializeObject(tmp)); }