protected List <LgdInputAssumptions_UnsecuredRecovery> GetLgdAssumptionsData() { //var qry = Queries.LGD_InputAssumptions_UnsecuredRecovery(this._eclId, this._eclType); //var dt = DataAccess.i.GetData(qry); var ldg_inputassumption = new List <LgdInputAssumptions_UnsecuredRecovery>(); var pdCali = new CalibrationInput_PD_CR_RD_Processor().GetPDRedefaultFactorCureRate(this._eclId, this._eclType); var rcvCaliRate = new CalibrationInput_LGD_RecoveryRate_Processor().GetLGDRecoveryRateData(this._eclId, this._eclType); //foreach (DataRow dr in dt.Rows) var rcvCaliRate_ = 0.0; for (int i = 0; i < 3; i++) { var _lgdAssumption = new LgdInputAssumptions_UnsecuredRecovery(); if (i == 0) { _lgdAssumption.Cure_Rate = pdCali[2]; rcvCaliRate_ = rcvCaliRate.Commercial_RecoveryRate; _lgdAssumption.Segment_Product_Type = "Commercial"; } else if (i == 1) { _lgdAssumption.Cure_Rate = pdCali[3]; rcvCaliRate_ = rcvCaliRate.Consumer_RecoveryRate; _lgdAssumption.Segment_Product_Type = "Consumer"; } else if (i == 2) { _lgdAssumption.Cure_Rate = pdCali[1]; rcvCaliRate_ = rcvCaliRate.Corporate_RecoveryRate; _lgdAssumption.Segment_Product_Type = "Corporate"; } else { rcvCaliRate_ = 0; _lgdAssumption.Segment_Product_Type = ""; } _lgdAssumption.Days_0 = rcvCaliRate_; _lgdAssumption.Days_90 = rcvCaliRate_ - (rcvCaliRate_ * 0.25); _lgdAssumption.Days_180 = _lgdAssumption.Days_90 - (rcvCaliRate_ * 0.25); _lgdAssumption.Days_270 = _lgdAssumption.Days_180 - (rcvCaliRate_ * 0.25); _lgdAssumption.Days_360 = _lgdAssumption.Days_270 - (rcvCaliRate_ * 0.25); //_lgdAssumption.Days_90 = rcvCaliRate_ - (rcvCaliRate.Commercial_RecoveryRate * 0.25); //_lgdAssumption.Days_180 = _lgdAssumption.Days_90 - (rcvCaliRate.Commercial_RecoveryRate * 0.25); //_lgdAssumption.Days_270 = _lgdAssumption.Days_180 - (rcvCaliRate.Commercial_RecoveryRate * 0.25); //_lgdAssumption.Days_360 = _lgdAssumption.Days_270 - (rcvCaliRate.Commercial_RecoveryRate * 0.25); _lgdAssumption.Downturn_Days_0 = 1 - ((1 - rcvCaliRate_) * 0.92 + 0.08); _lgdAssumption.Downturn_Days_90 = 1 - ((1 - _lgdAssumption.Days_90) * 0.92 + 0.08); _lgdAssumption.Downturn_Days_180 = 1 - ((1 - _lgdAssumption.Days_180) * 0.92 + 0.08); _lgdAssumption.Downturn_Days_270 = 1 - ((1 - _lgdAssumption.Days_270) * 0.92 + 0.08); _lgdAssumption.Downturn_Days_360 = 1 - ((1 - _lgdAssumption.Days_360) * 0.92 + 0.08); ldg_inputassumption.Add(_lgdAssumption); } var _ldg_inputassumption = new List <LgdInputAssumptions_UnsecuredRecovery>(); foreach (var itm in ldg_inputassumption) { itm.Segment_Product_Type = itm.Segment_Product_Type ?? ""; if (itm.Segment_Product_Type.ToLower().EndsWith("curerate")) { itm.Days_0 = 0; var sub_itm = ldg_inputassumption.FirstOrDefault(o => o.Segment_Product_Type.ToLower().Contains(itm.Segment_Product_Type.ToLower().Replace("curerate", "timeIndefault"))); if (sub_itm != null) { itm.Days_0 = sub_itm.Days_0; } _ldg_inputassumption.Add(itm); } } Log4Net.Log.Info($"Got ldg_inputassumption"); return(ldg_inputassumption); }
public bool ProcessCalibrationRunTask() { try { var cali = Queries.CalibrationBehavioural(); var dt = DataAccess.i.GetData(cali); if (dt.Rows.Count > 0) { var qry = ""; var caliId = Guid.NewGuid(); try { var affId = (long)dt.Rows[0]["AffiliateId"]; caliId = (Guid)dt.Rows[0]["Id"]; //qry = Queries.UpdateGuidTableServiceId("CalibrationRunEadBehaviouralTerms", this.serviceId, caliId); //var resp = DataAccess.i.ExecuteQuery(qry); //if (resp == 0) //{ // Log4Net.Log.Info($"Another service has picked Behavioural Calibration with ID {caliId.ToString()}."); // return true; //} qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 4, "Processing", "CalibrationRunEadBehaviouralTerms"); DataAccess.i.ExecuteQuery(qry); var ead_bahavioural = new CalibrationInput_EAD_Behavioural_Terms_Processor(); ead_bahavioural.ProcessCalibration(caliId, affId); qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 5, "Completed", "CalibrationRunEadBehaviouralTerms"); DataAccess.i.ExecuteQuery(qry); } catch (Exception ex) { Log4Net.Log.Info("At Calibration"); Log4Net.Log.Error(ex.ToString()); qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 10, ex.ToString(), "CalibrationRunEadBehaviouralTerms"); DataAccess.i.ExecuteQuery(qry); } } else { Log4Net.Log.Info("No new Calibration found!"); } cali = Queries.CalibrationCCF(); dt = DataAccess.i.GetData(cali); if (dt.Rows.Count > 0) { var qry = ""; var caliId = Guid.NewGuid(); try { var affId = (long)dt.Rows[0]["AffiliateId"]; caliId = (Guid)dt.Rows[0]["Id"]; qry = Queries.UpdateGuidTableServiceId("CalibrationRunEadCcfSummary", this.serviceId, caliId); var resp = DataAccess.i.ExecuteQuery(qry); if (resp == 0) { Log4Net.Log.Info($"Another service has picked CCF Calibration with ID {caliId.ToString()}."); return(true); } qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 4, "Processing", "CalibrationRunEadCcfSummary"); DataAccess.i.ExecuteQuery(qry); var ead_ccf = new CalibrationInput_EAD_CCF_Summary_Processor(); ead_ccf.ProcessCalibration(caliId, affId); qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 5, "Completed", "CalibrationRunEadCcfSummary"); DataAccess.i.ExecuteQuery(qry); } catch (Exception ex) { Log4Net.Log.Info("At Calibration"); Log4Net.Log.Error(ex.ToString()); qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 10, ex.ToString(), "CalibrationRunEadCcfSummary"); DataAccess.i.ExecuteQuery(qry); } } cali = Queries.CalibrationHaircut(); dt = DataAccess.i.GetData(cali); if (dt.Rows.Count > 0) { var qry = ""; var caliId = Guid.NewGuid(); try { var affId = (long)dt.Rows[0]["AffiliateId"]; caliId = (Guid)dt.Rows[0]["Id"]; qry = Queries.UpdateGuidTableServiceId("CalibrationRunLgdHairCut", this.serviceId, caliId); var resp = DataAccess.i.ExecuteQuery(qry); if (resp == 0) { Log4Net.Log.Info($"Another service has picked Haircut Calibration with ID {caliId.ToString()}."); return(true); } qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 4, "Processing", "CalibrationRunLgdHairCut"); DataAccess.i.ExecuteQuery(qry); var lgd_haircut = new CalibrationInput_LGD_Haricut_Processor(); lgd_haircut.ProcessCalibration(caliId, affId); qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 5, "Completed", "CalibrationRunLgdHairCut"); DataAccess.i.ExecuteQuery(qry); } catch (Exception ex) { Log4Net.Log.Error(ex.ToString()); qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 10, ex.ToString(), "CalibrationRunLgdHairCut"); DataAccess.i.ExecuteQuery(qry); } } cali = Queries.CalibrationRecovery(); dt = DataAccess.i.GetData(cali); if (dt.Rows.Count > 0) { var qry = ""; var caliId = Guid.NewGuid(); try { var affId = (long)dt.Rows[0]["AffiliateId"]; caliId = (Guid)dt.Rows[0]["Id"]; qry = Queries.UpdateGuidTableServiceId("CalibrationRunLgdRecoveryRate", this.serviceId, caliId); var resp = DataAccess.i.ExecuteQuery(qry); if (resp == 0) { Log4Net.Log.Info($"Another service has picked Recovery Rate Calibration with ID {caliId.ToString()}."); return(true); } qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 4, "Processing", "CalibrationRunLgdRecoveryRate"); DataAccess.i.ExecuteQuery(qry); var lgd_recoveryR = new CalibrationInput_LGD_RecoveryRate_Processor(); lgd_recoveryR.ProcessCalibration(caliId, affId); qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 5, "Completed", "CalibrationRunLgdRecoveryRate"); DataAccess.i.ExecuteQuery(qry); } catch (Exception ex) { Log4Net.Log.Error(ex.ToString()); qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 10, ex.ToString(), "CalibrationRunLgdRecoveryRate"); DataAccess.i.ExecuteQuery(qry); } } cali = Queries.CalibrationPD(); dt = DataAccess.i.GetData(cali); if (dt.Rows.Count > 0) { var qry = ""; var caliId = Guid.NewGuid(); try { var affId = (long)dt.Rows[0]["AffiliateId"]; caliId = (Guid)dt.Rows[0]["Id"]; qry = Queries.UpdateGuidTableServiceId("CalibrationRunPdCrDrs", this.serviceId, caliId); var resp = DataAccess.i.ExecuteQuery(qry); if (resp == 0) { Log4Net.Log.Info($"Another service has picked PD CR DR Calibration with ID {caliId.ToString()}."); return(true); } qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 4, "Processing", "CalibrationRunPdCrDrs"); DataAccess.i.ExecuteQuery(qry); var pd_cr_dr = new CalibrationInput_PD_CR_RD_Processor(); pd_cr_dr.ProcessCalibration(caliId, affId); qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 5, "Completed", "CalibrationRunPdCrDrs"); DataAccess.i.ExecuteQuery(qry); }catch (Exception ex) { Log4Net.Log.Error(ex); qry = Queries.CalibrationRegisterUpdate(caliId.ToString(), 10, ex.ToString(), "CalibrationRunPdCrDrs"); DataAccess.i.ExecuteQuery(qry); } } }catch (Exception ex) { Log4Net.Log.Info("At Calibration"); Log4Net.Log.Error(ex.ToString()); var x = 0; } return(true); }