public ActionResult GetDebtInStock(SearchingStockViewModel model) { Request.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*"); var ownedNote = _debtnote.Queryable().Include(t => t.PayWarehouse).Include(t => t.PaymentType).Where(x => x.IsOwed == true && x.Delete == false && ((!model.WarehouseId.HasValue) || x.PayWarehouse.Id == model.WarehouseId) && ((!model.Start.HasValue) || x.CreatedDate >= model.Start) && ((!model.End.HasValue) || x.CreatedDate <= model.End)).Select(x => new DebtNoteViewModel { Id = x.Id, PayWarehouse = x.PayWarehouse.Name, Total = x.Total, CreatedDate = x.CreatedDate, LastModifiedDate = x.LastModifiedDate, PayMethod = x.PaymentType.Name, Noted = x.Noted, Code = x.Code }); var ownNote = _debtnote.Queryable().Include(t => t.PayWarehouse).Include(t => t.PaymentType).Where(x => x.IsOwed == false && x.Delete == false && ((!model.WarehouseId.HasValue) || x.PayWarehouse.Id == model.WarehouseId) && ((!model.Start.HasValue) || x.CreatedDate >= model.Start) && ((!model.End.HasValue) || x.CreatedDate <= model.End) ).Select(x => new DebtNoteViewModel { Id = x.Id, PayWarehouse = x.PayWarehouse.Name, Total = x.Total, CreatedDate = x.CreatedDate, LastModifiedDate = x.LastModifiedDate, PayMethod = x.PaymentType.Name, Noted = x.Noted, Code = x.Code }); var groupOwedNote = ownedNote.GroupBy(x => new { x.PayWarehouse }, (Key, group) => new DebtStockGroupViewModel() { Warehouse = Key.PayWarehouse, StockList = group.GroupBy(y => new { y.PayMethod }, (Key2, group2) => new DebtStockViewModel() { PayMethod = Key2.PayMethod, Details = group2.Select(z => new DebtStockDetailViewModel() { Code = z.Code, Total = z.Total, Noted = z.Noted }).ToList() }).ToList() }); var groupOwnNote = ownNote.GroupBy(x => new { x.PayWarehouse }, (Key, group) => new DebtStockGroupViewModel() { Warehouse = Key.PayWarehouse, StockList = group.GroupBy(y => new { y.PayMethod }, (Key2, group2) => new DebtStockViewModel() { PayMethod = Key2.PayMethod, Details = group2.Select(z => new DebtStockDetailViewModel() { Code = z.Code, Total = z.Total, Noted = z.Noted }).ToList() }).ToList() }); var filterOwnedNote = new List <DebtStockViewModel>(); foreach (var item in groupOwedNote) { if (groupOwnNote.Where(x => x.Warehouse == item.Warehouse).Any()) { } } return(Json(groupOwnNote, JsonRequestBehavior.AllowGet)); }