public override int GetHashCode() { int hash = 1; hash ^= results_.GetHashCode(); if (NextPageToken.Length != 0) { hash ^= NextPageToken.GetHashCode(); } if (TotalResultsCount != 0L) { hash ^= TotalResultsCount.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public override int GetHashCode() { int hash = 1; hash ^= tenants_.GetHashCode(); if (NextPageToken.Length != 0) { hash ^= NextPageToken.GetHashCode(); } if (metadata_ != null) { hash ^= Metadata.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public async Task <PaginatedResult <FolderDto> > GetPageAsync(PaginationDto pagination, int?parentId) { int pageIndex = !string.IsNullOrEmpty(pagination.NextPageToken) ? new NextPageToken(pagination.NextPageToken).NextPageIndex : 1; try { IQueryable <Folder> foldersQuery = dbContext.Folders.AsNoTracking(); var folders = await foldersQuery .Where(folder => folder.ParentId == parentId) .Skip((pageIndex - 1) * pagination.Limit) .Take(pagination.Limit + 1) .ToListAsync(); bool hasNextPage = folders.Count > pagination.Limit; if (hasNextPage) { folders.RemoveAt(folders.Count - 1); } string nextPageToken = new NextPageToken(pageIndex, hasNextPage).ToString(); return(new PaginatedResult <FolderDto>( folders.Select(folder => new FolderDto(folder)).OrderBy(folder => folder.Id).ToList(), nextPageToken )); } catch (Exception ex) { string errorMessage = $"Failed to retrieve page of {typeof(Folder)}"; logger.LogError(errorMessage, ex); throw new RepositoryException(errorMessage, ex); } }