4
4
using StrDss . Common ;
5
5
using StrDss . Data . Entities ;
6
6
using StrDss . Model ;
7
+ using System . Diagnostics ;
7
8
8
9
namespace StrDss . Data . Repositories
9
10
{
10
- public interface IRepositoryBase < TEntity >
11
+ public interface IRepositoryBase < TEntity >
11
12
where TEntity : class
12
13
{
13
14
Task < PagedDto < TOutput > > Page < TInput , TOutput > ( IQueryable < TInput > list , int pageSize , int pageNumber , string orderBy , string direction , string extraSort = "" ) ;
@@ -35,8 +36,16 @@ public RepositoryBase(DssDbContext dbContext, IMapper mapper, ICurrentUser curre
35
36
36
37
public async Task < PagedDto < TOutput > > Page < TInput , TOutput > ( IQueryable < TInput > list , int pageSize , int pageNumber , string orderBy , string direction = "" , string extraSort = "" )
37
38
{
39
+ var stopwatch = Stopwatch . StartNew ( ) ;
40
+
38
41
var totalRecords = list . Count ( ) ;
39
42
43
+ stopwatch . Stop ( ) ;
44
+
45
+ _logger . LogDebug ( $ "Get Grouped Listings (group) - Counting groups. Page Size: { pageSize } , Page Number: { pageNumber } , Time: { stopwatch . Elapsed . TotalSeconds } seconds") ;
46
+
47
+ stopwatch . Restart ( ) ;
48
+
40
49
if ( pageNumber <= 0 ) pageNumber = 1 ;
41
50
42
51
var sort = "" ;
@@ -49,7 +58,7 @@ public async Task<PagedDto<TOutput>> Page<TInput, TOutput>(IQueryable<TInput> li
49
58
{
50
59
sort = $ "{ orderBy } { direction } , { extraSort } ";
51
60
}
52
- else
61
+ else
53
62
{
54
63
sort = $ "{ extraSort } ";
55
64
}
@@ -65,6 +74,12 @@ public async Task<PagedDto<TOutput>> Page<TInput, TOutput>(IQueryable<TInput> li
65
74
66
75
var result = await pagedList . ToListAsync ( ) ;
67
76
77
+ stopwatch . Stop ( ) ;
78
+
79
+ _logger . LogDebug ( $ "Get Grouped Listings (group) - Getting groups. Time: { stopwatch . Elapsed . TotalSeconds } seconds") ;
80
+
81
+ stopwatch . Restart ( ) ;
82
+
68
83
IEnumerable < TOutput > outputList ;
69
84
70
85
if ( typeof ( TOutput ) != typeof ( TInput ) )
@@ -75,7 +90,8 @@ public async Task<PagedDto<TOutput>> Page<TInput, TOutput>(IQueryable<TInput> li
75
90
var pagedDTO = new PagedDto < TOutput >
76
91
{
77
92
SourceList = outputList ,
78
- PageInfo = new PageInfo {
93
+ PageInfo = new PageInfo
94
+ {
79
95
PageNumber = pageNumber ,
80
96
PageSize = pageSize ,
81
97
TotalCount = totalRecords ,
@@ -85,6 +101,10 @@ public async Task<PagedDto<TOutput>> Page<TInput, TOutput>(IQueryable<TInput> li
85
101
}
86
102
} ;
87
103
104
+ stopwatch . Stop ( ) ;
105
+
106
+ _logger . LogDebug ( $ "Get Grouped Listings (group) - Mapping groups to DTO. Time: { stopwatch . Elapsed . TotalSeconds } seconds") ;
107
+
88
108
return pagedDTO ;
89
109
}
90
110
}
0 commit comments