Skip to content

Commit 2843111

Browse files
committed
refactor: make if statements more conscise
1 parent 9000421 commit 2843111

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

src/JsonApiDotNetCore/Data/DefaultResourceRepository.cs

+10-20
Original file line numberDiff line numberDiff line change
@@ -304,36 +304,26 @@ public virtual async Task<IEnumerable<TResource>> PageAsync(IQueryable<TResource
304304
if (pageNumber >= 0)
305305
{
306306
entities = entities.PageForward(pageSize, pageNumber);
307-
if (entities is IAsyncQueryProvider)
308-
{
309-
return await entities.ToListAsync();
310-
}
311-
else
312-
{
313-
return entities.ToList();
314-
}
307+
return entities is IAsyncQueryProvider ? await entities.ToListAsync() : entities.ToList();
315308
}
316309
else
317310
{
318-
if (!(entities is IAsyncQueryProvider))
319-
{
320-
entities = entities.Reverse();
321-
int firstIndex = pageSize * Math.Abs(pageNumber) - 1;
322-
int numberOfElementsInPage = Math.Min(pageSize, firstIndex + pageSize);
323-
324-
return entities.Skip(firstIndex).Take(numberOfElementsInPage);
325-
}
326-
else
311+
if (entities is IAsyncQueryProvider)
327312
{
328313
// since EntityFramework does not support IQueryable.Reverse(), we need to know the number of queried entities
329314
var totalCount = await entities.CountAsync();
330315

331316
int virtualFirstIndex = totalCount - pageSize * Math.Abs(pageNumber);
332317
int numberOfElementsInPage = Math.Min(pageSize, virtualFirstIndex + pageSize);
333318

334-
return await ToListAsync(entities
335-
.Skip(virtualFirstIndex)
336-
.Take(numberOfElementsInPage));
319+
return await ToListAsync(entities.Skip(virtualFirstIndex).Take(numberOfElementsInPage));
320+
}
321+
else
322+
{
323+
entities = entities.Reverse();
324+
int firstIndex = pageSize * Math.Abs(pageNumber) - 1;
325+
int numberOfElementsInPage = Math.Min(pageSize, firstIndex + pageSize);
326+
return entities.Skip(firstIndex).Take(numberOfElementsInPage);
337327
}
338328
}
339329
}

0 commit comments

Comments
 (0)