public IActionResult ListCategory() { var category = _courseCategoryService.GetCondition(m => m.Status == true && m.ParentId == 0).Select(m => new { m.Id, m.Name, m.SortOrder }).OrderBy(m => m.SortOrder); Dictionary <int, List <CourseCategories> > listCategoryChild = new Dictionary <int, List <CourseCategories> >(); foreach (var item in category) { var categoryChild = _courseCategoryService.GetChildCategory(item.Id).Select(m => new CourseCategories { Id = m.Id, Name = m.Name, ParentId = m.ParentId, SortOrder = m.SortOrder }).OrderBy(m => m.SortOrder).ToList(); if (categoryChild.Count > 0) { listCategoryChild.Add(item.Id, categoryChild); } else { listCategoryChild.Add(item.Id, new List <CourseCategories>()); } } bool status = false; if (listCategoryChild.Count > 0) { status = true; } return(Json(new { status = status, parentCategory = category, listChild = listCategoryChild })); }