public CalibrationResult_EAD_CCF_Summary GetCCFData(Guid eclId, EclType eclType) { string qry = Queries.GetEADCCFData(eclId, eclType.ToString()); var dt = DataAccess.i.GetData(qry); if (dt.Rows.Count == 0) { return(new CalibrationResult_EAD_CCF_Summary { OD_TotalLimitOdDefaultedLoan = 0, OD_BalanceAtDefault = 0, OD_Balance12MonthBeforeDefault = 0, OD_TotalConversation = 0, OD_CCF = 0, Card_TotalLimitOdDefaultedLoan = 0, Card_BalanceAtDefault = 0, Card_Balance12MonthBeforeDefault = 0, Card_TotalConversation = 0, Card_CCF = 0, Overall_TotalLimitOdDefaultedLoan = 0, Overall_BalanceAtDefault = 0, Overall_Balance12MonthBeforeDefault = 0, Overall_TotalConversation = 0, Overall_CCF = 0 }); } DataRow dr = dt.Rows[0]; var itm = new CalibrationResult_EAD_CCF_Summary(); try { itm.OD_TotalLimitOdDefaultedLoan = double.Parse(dr["OD_TotalLimitOdDefaultedLoan"].ToString().Trim()); } catch { itm.OD_TotalLimitOdDefaultedLoan = 0; } try { itm.OD_BalanceAtDefault = double.Parse(dr["OD_BalanceAtDefault"].ToString().Trim()); } catch { itm.OD_BalanceAtDefault = 0; } try { itm.OD_Balance12MonthBeforeDefault = double.Parse(dr["OD_Balance12MonthBeforeDefault"].ToString().Trim()); } catch { itm.OD_Balance12MonthBeforeDefault = 0; } try { itm.OD_TotalConversation = double.Parse(dr["OD_TotalConversation"].ToString().Trim()); } catch { itm.OD_TotalConversation = 0; } try { itm.OD_CCF = double.Parse(dr["OD_CCF"].ToString().Trim()); } catch { itm.OD_CCF = 0; } try { itm.Card_TotalLimitOdDefaultedLoan = double.Parse(dr["Card_TotalLimitOdDefaultedLoan"].ToString().Trim()); } catch { itm.Card_TotalLimitOdDefaultedLoan = 0; } try { itm.Card_BalanceAtDefault = double.Parse(dr["Card_BalanceAtDefault"].ToString().Trim()); } catch { itm.Card_BalanceAtDefault = 0; } try { itm.Card_Balance12MonthBeforeDefault = double.Parse(dr["Card_Balance12MonthBeforeDefault"].ToString().Trim()); } catch { itm.Card_Balance12MonthBeforeDefault = 0; } try { itm.Card_TotalConversation = double.Parse(dr["Card_TotalConversation"].ToString().Trim()); } catch { itm.Card_TotalConversation = 0; } try { itm.Card_CCF = double.Parse(dr["Card_CCF"].ToString().Trim()); } catch { itm.Card_CCF = 0; } try { itm.Overall_TotalLimitOdDefaultedLoan = double.Parse(dr["Overall_TotalLimitOdDefaultedLoan"].ToString().Trim()); } catch { itm.Overall_TotalLimitOdDefaultedLoan = 0; } try { itm.Overall_BalanceAtDefault = double.Parse(dr["Overall_BalanceAtDefault"].ToString().Trim()); } catch { itm.Overall_BalanceAtDefault = 0; } try { itm.Overall_Balance12MonthBeforeDefault = double.Parse(dr["Overall_Balance12MonthBeforeDefault"].ToString().Trim()); } catch { itm.Overall_Balance12MonthBeforeDefault = 0; } try { itm.Overall_TotalConversation = double.Parse(dr["Overall_TotalConversation"].ToString().Trim()); } catch { itm.Overall_TotalConversation = 0; } try { itm.Overall_CCF = double.Parse(dr["Overall_CCF"].ToString().Trim()); } catch { itm.Overall_CCF = 0; } return(itm); }
public bool ProcessCalibration(Guid calibrationId, long affiliateId) { var baseAffPath = Path.Combine(Util.AppSettings.CalibrationModelPath, affiliateId.ToString()); if (!Directory.Exists(baseAffPath)) { Directory.CreateDirectory(baseAffPath); } var qry = Queries.CalibrationInput_EAD_CCF(calibrationId); var _dt = DataAccess.i.GetData(qry); //DataView dv = _dt.DefaultView; //dv.Sort = "Account_No,Snapshot_Date"; var dt = _dt;// dv.ToTable(); var rowCount = dt.Rows.Count + 1; if (dt.Rows.Count == 0) { return(true); } var counter = Util.AppSettings.GetCounter(dt.Rows.Count); var path = $"{Path.Combine(Util.AppSettings.CalibrationModelPath, counter.ToString(), "EAD_CCF.xlsx")}"; var path1 = $"{Path.Combine(baseAffPath, $"{Guid.NewGuid().ToString()}EAD_CCF.xlsx")}"; if (File.Exists(path1)) { try { File.Delete(path1); } catch { }; } ExcelPackage.LicenseContext = LicenseContext.NonCommercial; using (var package = new ExcelPackage(new FileInfo(path))) { ExcelWorksheet worksheet = package.Workbook.Worksheets[1];//.FirstOrDefault(); // get number of rows in the sheet int rows = worksheet.Dimension.Rows; // 10 worksheet.DeleteRow(dt.Rows.Count + 1, rows - (dt.Rows.Count + 1)); // loop through the worksheet rows package.Workbook.CalcMode = ExcelCalcMode.Automatic; for (int i = 0; i < dt.Rows.Count; i++)// DataRow dr in dt.Rows) { Log4Net.Log.Info(i); DataRow dr = dt.Rows[i]; var itm = DataAccess.i.ParseDataToObject(new EAD_CCF_Summary(), dr); if (string.IsNullOrEmpty(itm.Account_No) && itm.Snapshot_Date.ToString().Contains("0001")) { continue; } worksheet.Cells[i + 2, 1].Value = itm.Customer_No ?? ""; worksheet.Cells[i + 2, 2].Value = itm.Account_No ?? ""; worksheet.Cells[i + 2, 3].Value = itm.Settlement_Account ?? ""; worksheet.Cells[i + 2, 4].Value = itm.Product_Type ?? ""; if (!itm.Snapshot_Date.ToString().Contains("0001")) { worksheet.Cells[i + 2, 5].Value = itm.Snapshot_Date; } if (itm.Contract_Start_Date != null) { worksheet.Cells[i + 2, 6].Value = itm.Contract_Start_Date; } if (itm.Contract_End_Date != null) { worksheet.Cells[i + 2, 7].Value = itm.Contract_End_Date; } worksheet.Cells[i + 2, 8].Value = itm.Limit; worksheet.Cells[i + 2, 9].Value = itm.Outstanding_Balance; worksheet.Cells[i + 2, 10].Value = itm.Classification ?? ""; } //package.Workbook.Worksheets[1].Calculate(); //package.Workbook.Worksheets[0].Calculate(); //ExcelCalculationOption o = new ExcelCalculationOption(); //o.AllowCircularReferences = true; //package.Workbook.Calculate(o); var fi = new FileInfo(path1); package.SaveAs(fi); } string txtLocation = Path.GetFullPath(path1); object _missingValue = System.Reflection.Missing.Value; Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); var theWorkbook = excel.Workbooks.Open(txtLocation, _missingValue, false, _missingValue, _missingValue, _missingValue, true, _missingValue, _missingValue, true, _missingValue, _missingValue, _missingValue); try { //Sort Worksheet calculationSheet = theWorkbook.Sheets[2]; Range sortRange = calculationSheet.Range["A2", "J" + rowCount.ToString()]; sortRange.Sort(sortRange.Columns[9], XlSortOrder.xlDescending, DataOption1: XlSortDataOption.xlSortTextAsNumbers); //Outstanding balance sortRange.Sort(sortRange.Columns[5], XlSortOrder.xlAscending); //Snapshot date sortRange.Sort(sortRange.Columns[3], XlSortOrder.xlDescending, DataOption1: XlSortDataOption.xlSortTextAsNumbers); // Settlement Account //refresh and calculate to modify theWorkbook.RefreshAll(); excel.Calculate(); Worksheet worksheet1 = theWorkbook.Sheets[1]; var r = new CalibrationResult_EAD_CCF_Summary(); try { r.OD_TotalLimitOdDefaultedLoan = double.Parse(worksheet1.Cells[2, 2].Value.ToString()); } catch { } try{ r.OD_BalanceAtDefault = double.Parse(worksheet1.Cells[3, 2].Value.ToString()); } catch { } try{ r.OD_Balance12MonthBeforeDefault = double.Parse(worksheet1.Cells[4, 2].Value.ToString()); } catch { } try{ r.OD_TotalConversation = double.Parse(worksheet1.Cells[5, 2].Value.ToString()); } catch { } try{ r.OD_CCF = double.Parse(worksheet1.Cells[6, 2].Value.ToString()); } catch { } try{ r.Card_TotalLimitOdDefaultedLoan = double.Parse(worksheet1.Cells[2, 3].Value.ToString()); } catch { } try{ r.Card_BalanceAtDefault = double.Parse(worksheet1.Cells[3, 3].Value.ToString()); } catch { } try{ r.Card_Balance12MonthBeforeDefault = double.Parse(worksheet1.Cells[4, 3].Value.ToString()); } catch { } try{ r.Card_TotalConversation = double.Parse(worksheet1.Cells[5, 3].Value.ToString()); } catch { } try{ r.Card_CCF = double.Parse(worksheet1.Cells[6, 3].Value.ToString()); } catch { } try{ r.Overall_TotalLimitOdDefaultedLoan = double.Parse(worksheet1.Cells[2, 4].Value.ToString()); } catch { } try{ r.Overall_BalanceAtDefault = double.Parse(worksheet1.Cells[3, 4].Value.ToString()); } catch { } try{ r.Overall_Balance12MonthBeforeDefault = double.Parse(worksheet1.Cells[4, 4].Value.ToString()); } catch { } try{ r.Overall_TotalConversation = double.Parse(worksheet1.Cells[5, 4].Value.ToString()); } catch { } try{ r.Overall_CCF = double.Parse(worksheet1.Cells[6, 4].Value.ToString()); } catch { } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.OD_TotalLimitOdDefaultedLoan)) { r.OD_TotalLimitOdDefaultedLoan = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.OD_BalanceAtDefault)) { r.OD_BalanceAtDefault = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.OD_Balance12MonthBeforeDefault)) { r.OD_Balance12MonthBeforeDefault = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.OD_TotalConversation)) { r.OD_TotalConversation = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.OD_CCF)) { r.OD_CCF = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.Card_TotalLimitOdDefaultedLoan)) { r.Card_TotalLimitOdDefaultedLoan = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.Card_BalanceAtDefault)) { r.Card_BalanceAtDefault = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.Card_Balance12MonthBeforeDefault)) { r.Card_Balance12MonthBeforeDefault = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.Card_TotalConversation)) { r.Card_TotalConversation = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.Card_CCF)) { r.Card_CCF = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.Overall_TotalLimitOdDefaultedLoan)) { r.Overall_TotalLimitOdDefaultedLoan = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.Overall_BalanceAtDefault)) { r.Overall_BalanceAtDefault = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.Overall_Balance12MonthBeforeDefault)) { r.Overall_Balance12MonthBeforeDefault = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.Overall_TotalConversation)) { r.Overall_TotalConversation = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.Overall_CCF)) { r.Overall_CCF = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.OD_CCF)) { r.OD_CCF = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.Card_CCF)) { r.Card_CCF = 0;// =0; } if (ECLNonStringConstants.i.ExcelDefaultValue.Contains(r.Overall_CCF)) { r.Overall_CCF = 0;// =0; } theWorkbook.Save(); theWorkbook.Close(true); excel.Quit(); qry = Queries.CalibrationResult_EAD_CCF_Summary_Update(calibrationId, r.OD_TotalLimitOdDefaultedLoan ?? 0, r.OD_BalanceAtDefault ?? 0, r.OD_Balance12MonthBeforeDefault ?? 0, r.OD_TotalConversation ?? 0, r.OD_CCF ?? 0, r.Card_TotalLimitOdDefaultedLoan ?? 0, r.Card_BalanceAtDefault ?? 0, r.Card_Balance12MonthBeforeDefault ?? 0, r.Card_TotalConversation ?? 0, r.Card_CCF ?? 0, r.Overall_TotalLimitOdDefaultedLoan ?? 0, r.Overall_BalanceAtDefault ?? 0, r.Overall_Balance12MonthBeforeDefault ?? 0, r.Overall_TotalConversation ?? 0, r.Overall_CCF ?? 0); DataAccess.i.ExecuteQuery(qry); } catch (Exception ex) { Log4Net.Log.Error(ex); theWorkbook.Save(); theWorkbook.Close(true); excel.Quit(); } //File.Delete(path1); return(true); }