Skip to content

Commit 2c836bf

Browse files
committed
improve code quality and consistency
1 parent c436e07 commit 2c836bf

15 files changed

+196
-409
lines changed

CheckDrive.Api/CheckDrive.Api/Controllers/CheckPointsController.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public async Task<ActionResult<List<CheckPointDto>>> GetCheckPointsAsync([FromQu
2525
}
2626

2727
[HttpGet("drivers/{driverId:int}/current")]
28-
public async Task<ActionResult<DriverCheckPointDto>> GetCurrentCheckPointByDriverIdAsync(int driverId)
28+
public async Task<ActionResult<CheckPointDto>> GetCurrentCheckPointByDriverIdAsync(int driverId)
2929
{
3030
var checkPoint = await _service.GetCurrentCheckPointByDriverIdAsync(driverId);
3131

CheckDrive.Api/CheckDrive.Api/Controllers/DriversController.cs

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using CheckDrive.Application.DTOs.Driver;
22
using CheckDrive.Application.Interfaces;
3-
using CheckDrive.Domain.Enums;
43
using Microsoft.AspNetCore.Mvc;
54

65
namespace CheckDrive.Api.Controllers;
@@ -17,9 +16,9 @@ public DriversController(IDriverService driverService)
1716
}
1817

1918
[HttpGet]
20-
public async Task<ActionResult<List<DriverDto>>> GetAvailableDriversAsync(CheckPointStage? stage)
19+
public async Task<ActionResult<List<DriverDto>>> GetAvailableDriversAsync()
2120
{
22-
var drivers = await _driverService.GetAvailableDriversAsync(stage);
21+
var drivers = await _driverService.GetAvailableDriversAsync();
2322

2423
return Ok(drivers);
2524
}

CheckDrive.Api/CheckDrive.Api/Program.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
using Serilog;
66

77
Log.Logger = new LoggerConfiguration()
8-
.MinimumLevel.Verbose()
8+
.MinimumLevel.Information()
99
.Enrich.FromLogContext()
1010
.WriteTo.Console(new CustomJsonFormatter())
1111
.WriteTo.File(new CustomJsonFormatter(), "logs/logs.txt", rollingInterval: RollingInterval.Day)

CheckDrive.Api/CheckDrive.Application/DTOs/Driver/DriverDto.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@
33
public record DriverDto(
44
int Id,
55
string AccountId,
6-
string FullName,
7-
int? checkPointId);
6+
string FullName);

CheckDrive.Api/CheckDrive.Application/DTOs/MechanicHandover/MechanicHandoverReviewDto.cs

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using CheckDrive.Application.DTOs.Review;
1+
using CheckDrive.Application.DTOs.Car;
2+
using CheckDrive.Application.DTOs.Review;
23
using CheckDrive.Domain.Enums;
34

45
namespace CheckDrive.Application.DTOs.MechanicHandover;
@@ -12,7 +13,8 @@ public sealed record MechanicHandoverReviewDto(
1213
string? Notes,
1314
DateTime Date,
1415
ReviewStatus Status,
15-
int InitialMileage)
16+
int InitialMileage,
17+
CarDto Car)
1618
: ReviewDtoBase(
1719
CheckPointId: CheckPointId,
1820
ReviewerId: ReviewerId,

CheckDrive.Api/CheckDrive.Application/Interfaces/ICheckPointService.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,5 @@ namespace CheckDrive.Application.Interfaces;
66
public interface ICheckPointService
77
{
88
Task<List<CheckPointDto>> GetCheckPointsAsync(CheckPointQueryParameters queryParameters);
9-
Task<CheckPointDto> GetCheckPointsByDriverIdAsync(int driverId);
10-
Task<DriverCheckPointDto> GetCurrentCheckPointByDriverIdAsync(int driverId);
9+
Task<CheckPointDto> GetCurrentCheckPointByDriverIdAsync(int driverId);
1110
}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
using CheckDrive.Application.DTOs.Driver;
2-
using CheckDrive.Domain.Enums;
32

43
namespace CheckDrive.Application.Interfaces;
54

65
public interface IDriverService
76
{
8-
Task<List<DriverDto>> GetAvailableDriversAsync(CheckPointStage? stage);
7+
Task<List<DriverDto>> GetAvailableDriversAsync();
98
Task CreateReviewConfirmation(DriverReviewConfirmationDto confirmation);
109
}

CheckDrive.Api/CheckDrive.Application/Services/Auth/AuthService.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ public async Task<string> LoginAsync(LoginDto request)
3434
throw new InvalidLoginAttemptException("Invalid email or password");
3535
}
3636

37-
var roles = await _userManager.GetRolesAsync(employee.Account);
37+
var user = await _userManager.FindByNameAsync(request.UserName);
38+
var roles = await _userManager.GetRolesAsync(user);
3839
var token = _jwtTokenGenerator.GenerateToken(employee, roles);
3940

4041
return token;
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
using AutoMapper;
2-
using CheckDrive.Application.DTOs.Car;
32
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;
113
using CheckDrive.Application.Interfaces;
124
using CheckDrive.Domain.Entities;
135
using CheckDrive.Domain.Enums;
@@ -40,46 +32,26 @@ public async Task<List<CheckPointDto>> GetCheckPointsAsync(CheckPointQueryParame
4032
return dtos;
4133
}
4234

43-
public Task<CheckPointDto> GetCheckPointsByDriverIdAsync(int driverId)
35+
public async Task<CheckPointDto> GetCurrentCheckPointByDriverIdAsync(int driverId)
4436
{
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()
5238
.Where(x => x.DoctorReview != null)
5339
.Where(x => x.DoctorReview.DriverId == driverId)
5440
.Where(x => x.StartDate.Date == DateTime.UtcNow.Date)
5541
.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)
7042
.FirstOrDefaultAsync();
7143

7244
if (checkPoint is null)
7345
{
7446
throw new EntityNotFoundException($"Driver with id: {driverId} does not have current active Check Point.");
7547
}
7648

77-
var dto = MapToDto(checkPoint);
49+
var dto = _mapper.Map<CheckPointDto>(checkPoint);
7850

7951
return dto;
8052
}
8153

82-
private IQueryable<CheckPoint> GetQuery(CheckPointQueryParameters queryParameters)
54+
private IQueryable<CheckPoint> GetQuery(CheckPointQueryParameters? queryParameters = null)
8355
{
8456
var query = _context.CheckPoints
8557
.AsNoTracking()
@@ -89,15 +61,21 @@ private IQueryable<CheckPoint> GetQuery(CheckPointQueryParameters queryParameter
8961
.ThenInclude(x => x.Doctor)
9062
.Include(x => x.MechanicHandover)
9163
.ThenInclude(x => x.Mechanic)
64+
.Include(x => x.MechanicHandover)
65+
.ThenInclude(x => x.Car)
9266
.Include(x => x.OperatorReview)
9367
.ThenInclude(x => x.Operator)
9468
.Include(x => x.MechanicAcceptance)
9569
.ThenInclude(x => x.Mechanic)
9670
.Include(x => x.DispatcherReview)
9771
.ThenInclude(x => x.Dispatcher)
98-
.Include(x => x.Debt)
9972
.AsQueryable();
10073

74+
if (queryParameters is null)
75+
{
76+
return query;
77+
}
78+
10179
if (!string.IsNullOrWhiteSpace(queryParameters.Search))
10280
{
10381
query = query.Where(x =>
@@ -147,125 +125,4 @@ private static IQueryable<CheckPoint> FilterByDate(IQueryable<CheckPoint> query,
147125
_ => throw new ArgumentOutOfRangeException($"Date filter: {dateFilter} is not implemented yet."),
148126
};
149127
}
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-
}
271128
}

0 commit comments

Comments
 (0)