I need to create this ... ''' <summary> ''' Gets all categories ''' </summary> ''' <param name="categoryName">Category name</param> ''' <param name="pageIndex">Page index</param> ''' <param name="pageSize">Page size</param> ''' <param name="showHidden">A value indicating whether to show hidden records</param> ''' <returns>Categories</returns> Public Overridable Function GetCategories(Optional categoryName As String = "", Optional pageIndex As Integer = 0, Optional pageSize As Integer = Integer.MaxValue, Optional showHidden As Boolean = False) As IPagedList(Of Category) Implements ICategoryService.GetCategories Dim query = _categoryRepository.SelectOne If Not showHidden Then query = query.Where(Function(c) c.Published) End If If Not [String].IsNullOrWhiteSpace(categoryName) Then query = query.Where(Function(c) c.Name.Contains(categoryName)) End If query = query.Where(Function(c) Not c.Deleted) query = query.OrderBy(Function(c) c.ParentCategoryId).ThenBy(Function(c) c.DisplayOrder) If Not showHidden Then 'ACL (access control list) Dim allowedRolesIds = Ctx.CurrentUser.Roles.Where(Function(cr) cr.Active).[Select](Function(cr) cr.EntityId).ToList() query = From c In query Join acl In _aclRepository.SelectOne On _ New With { _ .c1 = c.EntityId, _ .c2 = "Category" _ Equals acl Select Var = acl } = New With { _ .c1 = acl.EntityId, _ .c2 = acl.EntityName _ } Into c_acl From acl In c_acl.DefaultIfEmpty() Where Not c.SubjectToAcl OrElse allowedRolesIds.Contains(acl.RoleId) Select c 'Store mapping Dim currentStoreId = _storeContext.CurrentStore.EntityId query = From c In query Join sm In _storeMappingRepository.SelectOne On _ New With { _ .c1 = c.EntityId, _ .c2 = "Category" _ Equals sm Select Var2 = sm } = New With { _ .c1 = sm.EntityId, _ .c2 = sm.EntityName _ } Into c_sm From sm In c_sm.DefaultIfEmpty() Where Not c.LimitedToStores OrElse currentStoreId = sm.StoreId Select c 'only distinct categories (group by ID) query = From cGroup In From c In query Group c By c.EntityId Into cGroup.Key cGroup.FirstOrDefault() query = query.OrderBy(Function(c) c.ParentCategoryId).ThenBy(Function(c) c.DisplayOrder) End If Dim unsortedCategories = query.ToList() 'sort categories Dim sortedCategories = unsortedCategories.SortCategoriesForTree() 'paging Return New PagedList(Of Category)(sortedCategories, pageIndex, pageSize) End Function How do I get in VB.net