public ActionResult LoanOBLookup() { LoanOBBll loanOBBll = new LoanOBBll(); List <LoanOBLookup> lstLoanOB = loanOBBll.LoanOBLookUp('G'); List <LoanOBLookupPivot> lstLoanOBPivot = new List <LoanOBLookupPivot>(); var lstLoanOBGroup = lstLoanOB.GroupBy(l => l.GroupID).Select(m => m.Key).ToList(); foreach (var group in lstLoanOBGroup) { var groupLoans = lstLoanOB.FindAll(l => l.GroupID == group); LoanOBLookupPivot loanOBLookupPivot = new LoanOBLookupPivot(); loanOBLookupPivot.GroupName = lstLoanOB.Find(l => l.GroupID == group).GroupName; loanOBLookupPivot.GroupID = group; foreach (var loan in groupLoans) { if (groupLoans.IndexOf(loan) == 0) { loanOBLookupPivot.LoanAmountGiven1 = loan.LoanAmountGiven; loanOBLookupPivot.PrincipalOutstanding1 = loan.PrincipalOutstanding; } else if (groupLoans.IndexOf(loan) == 1) { loanOBLookupPivot.LoanAmountGiven2 = loan.LoanAmountGiven; loanOBLookupPivot.PrincipalOutstanding2 = loan.PrincipalOutstanding; } else if (groupLoans.IndexOf(loan) == 2) { loanOBLookupPivot.LoanAmountGiven3 = loan.LoanAmountGiven; loanOBLookupPivot.PrincipalOutstanding3 = loan.PrincipalOutstanding; } else { break; } } lstLoanOBPivot.Add(loanOBLookupPivot); } var amount1 = lstLoanOBPivot.Sum(l => l.LoanAmountGiven1); var amount2 = lstLoanOBPivot.Sum(l => l.LoanAmountGiven2); var amount3 = lstLoanOBPivot.Sum(l => l.LoanAmountGiven3); var OSAmount1 = lstLoanOBPivot.Sum(l => l.PrincipalOutstanding1); var OSAmount2 = lstLoanOBPivot.Sum(l => l.PrincipalOutstanding2); var OSAmount3 = lstLoanOBPivot.Sum(l => l.PrincipalOutstanding3); ViewBag.LoanDisbursementTotal1 = amount1; ViewBag.LoanDisbursementTotal2 = amount2; ViewBag.LoanDisbursementTotal3 = amount3; ViewBag.LoanOutStandingAmountTotal1 = OSAmount1; ViewBag.LoanOutStandingAmountTotal2 = OSAmount2; ViewBag.LoanOutStandingAmountTotal3 = OSAmount3; return(View(lstLoanOBPivot)); // return View(lstLoanOB); }