Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }