private List<payOptionContainer> getOptionList(decimal amount) { var helper = new List<payOptionContainer>(); checkoutShared cs = new checkoutShared(db); var list = db.tbl_bank.Include("tbl_bankPos.tbl_bankPosOption").Where(a => a.statu).SelectMany(a => a.tbl_bankPos).Where(a => a.statu && a.isPosShownOnTable).ToList(); List<payOptionItem> blockList = new List<payOptionItem>(); int index = 1; // to Do : installment Tablo foreach (var item in list) { payOptionItem blockItem = new payOptionItem(); db.Entry(item).Reference(a => a.tbl_bank).Load(); db.Entry(item).Collection(a => a.tbl_bankPosOption).Load(); if (index % 4 == 0) { blockItem.containerId = (index / 4); } else { blockItem.containerId = (index / 4) + 1; } blockItem.logoColor = item.tbl_bank.color1; blockItem.headerColor = item.tbl_bank.color2; blockItem.rowColor = item.tbl_bank.color3; blockItem.logoImg = item.tbl_bank.paymentLogo; blockItem.itemList = new List<installmentItem>(); // 9 Taksit Max for (int i = 2; i < 10; i++) { installmentItem rowItem = new installmentItem(); var dataRowItem = item.tbl_bankPosOption.Where(a => a.paymentCount == i).FirstOrDefault(); rowItem.payCount = i; if (dataRowItem != null) { var calc = cs.getInstallmentAmount(amount, i, dataRowItem.additionalAmount); rowItem.totalAmount = calc.Item2; rowItem.insallmentAmount = calc.Item1; if (dataRowItem.minBasketAmount > amount) { rowItem.isMinSpentRequired = true; rowItem.spentAmount = dataRowItem.minBasketAmount; } blockItem.itemList.Add(rowItem); } } blockItem.excluedeList = blockItem.itemList.Where(a => a.isMinSpentRequired).ToList(); blockList.Add(blockItem); index = index + 1; } int containerCount = 0; if (blockList.Count % 4 == 0) { containerCount = blockList.Count / 4; } else { containerCount = blockList.Count / 4 + 1; } for (int i = 1; i < containerCount + 1; i++) { var item = new payOptionContainer(); item.payOptionList = blockList.Where(a => a.containerId == i).ToList(); helper.Add(item); } return helper; }