1
1
using AutoMapper ;
2
- using CheckDrive . Application . DTOs . Car ;
3
2
using CheckDrive . Application . DTOs . CheckPoint ;
4
- using CheckDrive . Application . DTOs . Debt ;
5
- using CheckDrive . Application . DTOs . DispatcherReview ;
6
- using CheckDrive . Application . DTOs . DoctorReview ;
7
- using CheckDrive . Application . DTOs . MechanicAcceptance ;
8
- using CheckDrive . Application . DTOs . MechanicHandover ;
9
- using CheckDrive . Application . DTOs . OperatorReview ;
10
- using CheckDrive . Application . DTOs . Review ;
11
3
using CheckDrive . Application . Interfaces ;
12
4
using CheckDrive . Domain . Entities ;
13
5
using CheckDrive . Domain . Enums ;
@@ -40,46 +32,26 @@ public async Task<List<CheckPointDto>> GetCheckPointsAsync(CheckPointQueryParame
40
32
return dtos ;
41
33
}
42
34
43
- public Task < CheckPointDto > GetCheckPointsByDriverIdAsync ( int driverId )
35
+ public async Task < CheckPointDto > GetCurrentCheckPointByDriverIdAsync ( int driverId )
44
36
{
45
- throw new NotImplementedException ( ) ;
46
- }
47
-
48
- public async Task < DriverCheckPointDto > GetCurrentCheckPointByDriverIdAsync ( int driverId )
49
- {
50
- var checkPoint = await _context . CheckPoints
51
- . AsNoTracking ( )
37
+ var checkPoint = await GetQuery ( )
52
38
. Where ( x => x . DoctorReview != null )
53
39
. Where ( x => x . DoctorReview . DriverId == driverId )
54
40
. Where ( x => x . StartDate . Date == DateTime . UtcNow . Date )
55
41
. Where ( x => x . Status == CheckPointStatus . InProgress )
56
- . Include ( x => x . DoctorReview )
57
- . ThenInclude ( x => x . Doctor )
58
- . Include ( x => x . DoctorReview )
59
- . ThenInclude ( x => x . Driver )
60
- . Include ( x => x . MechanicHandover )
61
- . ThenInclude ( x => x . Mechanic )
62
- . Include ( x => x . MechanicHandover )
63
- . ThenInclude ( x => x . Car )
64
- . Include ( x => x . OperatorReview )
65
- . ThenInclude ( x => x . Operator )
66
- . Include ( x => x . MechanicAcceptance )
67
- . ThenInclude ( x => x . Mechanic )
68
- . Include ( x => x . DispatcherReview )
69
- . ThenInclude ( x => x . Dispatcher )
70
42
. FirstOrDefaultAsync ( ) ;
71
43
72
44
if ( checkPoint is null )
73
45
{
74
46
throw new EntityNotFoundException ( $ "Driver with id: { driverId } does not have current active Check Point.") ;
75
47
}
76
48
77
- var dto = MapToDto ( checkPoint ) ;
49
+ var dto = _mapper . Map < CheckPointDto > ( checkPoint ) ;
78
50
79
51
return dto ;
80
52
}
81
53
82
- private IQueryable < CheckPoint > GetQuery ( CheckPointQueryParameters queryParameters )
54
+ private IQueryable < CheckPoint > GetQuery ( CheckPointQueryParameters ? queryParameters = null )
83
55
{
84
56
var query = _context . CheckPoints
85
57
. AsNoTracking ( )
@@ -89,15 +61,21 @@ private IQueryable<CheckPoint> GetQuery(CheckPointQueryParameters queryParameter
89
61
. ThenInclude ( x => x . Doctor )
90
62
. Include ( x => x . MechanicHandover )
91
63
. ThenInclude ( x => x . Mechanic )
64
+ . Include ( x => x . MechanicHandover )
65
+ . ThenInclude ( x => x . Car )
92
66
. Include ( x => x . OperatorReview )
93
67
. ThenInclude ( x => x . Operator )
94
68
. Include ( x => x . MechanicAcceptance )
95
69
. ThenInclude ( x => x . Mechanic )
96
70
. Include ( x => x . DispatcherReview )
97
71
. ThenInclude ( x => x . Dispatcher )
98
- . Include ( x => x . Debt )
99
72
. AsQueryable ( ) ;
100
73
74
+ if ( queryParameters is null )
75
+ {
76
+ return query ;
77
+ }
78
+
101
79
if ( ! string . IsNullOrWhiteSpace ( queryParameters . Search ) )
102
80
{
103
81
query = query . Where ( x =>
@@ -147,125 +125,4 @@ private static IQueryable<CheckPoint> FilterByDate(IQueryable<CheckPoint> query,
147
125
_ => throw new ArgumentOutOfRangeException ( $ "Date filter: { dateFilter } is not implemented yet.") ,
148
126
} ;
149
127
}
150
-
151
- private List < ReviewDtoBase > GetReviews ( CheckPoint checkPoint )
152
- {
153
- ArgumentNullException . ThrowIfNull ( checkPoint ) ;
154
-
155
- var reviews = new List < ReviewDtoBase > ( ) ;
156
- var doctorReview = _mapper . Map < DoctorReviewDto > ( checkPoint . DoctorReview ) ;
157
- reviews . Add ( doctorReview ) ;
158
-
159
- if ( checkPoint . MechanicHandover is not null )
160
- {
161
- var mechanicHandover = _mapper . Map < MechanicHandoverReviewDto > ( checkPoint . MechanicHandover ) ;
162
- reviews . Add ( mechanicHandover ) ;
163
- }
164
-
165
- if ( checkPoint . OperatorReview is not null )
166
- {
167
- var operatorReview = _mapper . Map < OperatorReviewDto > ( checkPoint . OperatorReview ) ;
168
- reviews . Add ( operatorReview ) ;
169
- }
170
-
171
- if ( checkPoint . MechanicAcceptance is not null )
172
- {
173
- var mechanicAcceptance = _mapper . Map < MechanicAcceptanceReviewDto > ( checkPoint . MechanicAcceptance ) ;
174
- reviews . Add ( mechanicAcceptance ) ;
175
- }
176
-
177
- if ( checkPoint . DispatcherReview is not null )
178
- {
179
- var dispatcherReview = _mapper . Map < DispatcherReviewDto > ( checkPoint . DispatcherReview ) ;
180
- reviews . Add ( dispatcherReview ) ;
181
- }
182
-
183
- return reviews ;
184
- }
185
-
186
- private static DebtDto ? GetDebt ( CheckPoint checkPoint )
187
- {
188
- ArgumentNullException . ThrowIfNull ( checkPoint ) ;
189
-
190
- if ( checkPoint . Debt is null )
191
- {
192
- return null ;
193
- }
194
-
195
- var debtEntity = checkPoint . Debt ;
196
- var debtDto = new DebtDto (
197
- CheckPointId : checkPoint . Id ,
198
- FualAmount : debtEntity . FuelAmount ,
199
- PaidAmount : debtEntity . PaidAmount ,
200
- Status : debtEntity . Status ) ;
201
-
202
- return debtDto ;
203
- }
204
-
205
- private DriverCheckPointDto MapToDto ( CheckPoint checkPoint )
206
- {
207
- ArgumentNullException . ThrowIfNull ( checkPoint ) ;
208
-
209
- var reviews = new List < DriverReviewDto > ( ) ;
210
- CarDto ? car = null ;
211
-
212
- {
213
- var doctorReview = checkPoint . DoctorReview ;
214
- var review = new DriverReviewDto (
215
- doctorReview . Notes ,
216
- doctorReview . Doctor . FirstName + " " + doctorReview . Doctor . LastName ,
217
- doctorReview . Date ,
218
- ReviewType . DoctorReview ,
219
- doctorReview . Status ) ;
220
- reviews . Add ( review ) ;
221
- }
222
-
223
- if ( checkPoint . MechanicHandover is not null )
224
- {
225
- var mechanicReview = checkPoint . MechanicHandover ;
226
- var review = new DriverReviewDto (
227
- mechanicReview . Notes ,
228
- mechanicReview . Mechanic . FirstName + " " + mechanicReview . Mechanic . LastName ,
229
- mechanicReview . Date ,
230
- ReviewType . MechanicHandover ,
231
- mechanicReview . Status ) ;
232
- reviews . Add ( review ) ;
233
- car = _mapper . Map < CarDto > ( mechanicReview . Car ) ;
234
- }
235
-
236
- if ( checkPoint . OperatorReview is not null )
237
- {
238
- var operatorReview = checkPoint . OperatorReview ;
239
- var review = new DriverReviewDto (
240
- operatorReview . Notes ,
241
- operatorReview . Operator . FirstName + " " + operatorReview . Operator . LastName ,
242
- operatorReview . Date ,
243
- ReviewType . OperatorReview ,
244
- operatorReview . Status ) ;
245
- reviews . Add ( review ) ;
246
- }
247
-
248
- if ( checkPoint . MechanicAcceptance is not null )
249
- {
250
- var mechanicReview = checkPoint . MechanicAcceptance ;
251
- var review = new DriverReviewDto (
252
- mechanicReview . Notes ,
253
- mechanicReview . Mechanic . FirstName + " " + mechanicReview . Mechanic . LastName ,
254
- mechanicReview . Date ,
255
- ReviewType . MechanicAcceptance ,
256
- mechanicReview . Status ) ;
257
- reviews . Add ( review ) ;
258
- }
259
-
260
- var checkPointDto = new DriverCheckPointDto (
261
- checkPoint . Id ,
262
- checkPoint . StartDate ,
263
- checkPoint . Stage ,
264
- checkPoint . Status ,
265
- checkPoint . DoctorReview . Driver . FirstName + " " + checkPoint . DoctorReview . Driver . LastName ,
266
- car ,
267
- reviews ) ;
268
-
269
- return checkPointDto ;
270
- }
271
128
}
0 commit comments