private void RunFinalJob(List <StageClassification> stageClassifcation) { var _finalEcl = new List <FinalEcl>(); foreach (var rowStage in stageClassifcation) { try { string contractId = rowStage.ContractId; int stage = rowStage.Stage; //xxxxxxxxxxxxxxxx string eirGroup = ""; try { eirGroup = eadInput.FirstOrDefault(x => x.Contract_no == contractId).Eir_Group; } catch { try { eirGroup = eadInput.FirstOrDefault().Eir_Group; } catch { } } double finalEclValue = ComputeFinalEclValue(monthlyEcl, cummulativeDiscountFactor, lifetimeEad, lifetimeLGD, contractId, rowStage, eirGroup); var newRow = new FinalEcl(); newRow.ContractId = contractId; newRow.Stage = stage; newRow.FinalEclValue = finalEclValue; var mntECL = monthlyEcl.Where(o => o.ContractId == rowStage.ContractId).ToList(); foreach (var itm in mntECL) { itm.FinalEclValue = finalEclValue; itm.Stage = stage; _finalEcl.Add(itm); } } catch (Exception ex) { Log4Net.Log.Error(ex); var cc = ex; } } lock (finalEcl) finalEcl.AddRange(_finalEcl); }
public List <FinalEcl> ComputeMonthlyEcl(List <LifetimeLgd> lifetimeLgds, List <LifetimeEad> lifetimeEads, List <LifeTimeObject> lifetimePds) { var monthlyEcl = new List <FinalEcl>(); foreach (var row in lifetimeLgds) { string contractId = row.ContractId; string pdGroup = row.PdIndex; int month = row.Month; double monthlyEclValue = ComputeMonthlyEclValue(lifetimePds, lifetimeEads, row, contractId, pdGroup, month); var newRow = new FinalEcl(); newRow.ContractId = contractId; newRow.EclMonth = month; newRow.MonthlyEclValue = monthlyEclValue; monthlyEcl.Add(newRow); } return(monthlyEcl); }