Skip to content

Commit 10216f8

Browse files
authored
Merge pull request #41 from DiyorMarket/oil-mark
Oil mark
2 parents e61b303 + 6cfbed7 commit 10216f8

File tree

3 files changed

+46
-69
lines changed

3 files changed

+46
-69
lines changed

CheckDrive.Api/CheckDrive.Api/Controllers/OilMarksController.cs

+6-13
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,28 @@ namespace CheckDrive.Api.Controllers;
77

88
[Route("api/oilMarks")]
99
[ApiController]
10-
public class OilMarksController : ControllerBase
10+
public class OilMarksController(IOilMarkService oilMarkService) : ControllerBase
1111
{
12-
private readonly IOilMarkService _oilMarkService;
13-
14-
public OilMarksController(IOilMarkService oilMarkService)
15-
{
16-
_oilMarkService = oilMarkService ?? throw new ArgumentNullException(nameof(oilMarkService));
17-
}
18-
1912
[HttpGet]
2013
public async Task<ActionResult<List<OilMarkDto>>> GetAsync([FromQuery] OilMarkQueryParameters queryParameters)
2114
{
22-
var oilMarks = await _oilMarkService.GetAllAsync(queryParameters);
15+
var oilMarks = await oilMarkService.GetAllAsync(queryParameters);
2316

2417
return Ok(oilMarks);
2518
}
2619

2720
[HttpGet("{id:int}", Name = "GetOilMarkById")]
2821
public async Task<ActionResult<OilMarkDto>> GetByIdAsync(int id)
2922
{
30-
var oilMark = await _oilMarkService.GetByIdAsync(id);
23+
var oilMark = await oilMarkService.GetByIdAsync(id);
3124

3225
return oilMark;
3326
}
3427

3528
[HttpPost]
3629
public async Task<ActionResult<OilMarkDto>> CreateAsync(CreateOilMarkDto oilMark)
3730
{
38-
var createdOilMark = await _oilMarkService.CreateAsync(oilMark);
31+
var createdOilMark = await oilMarkService.CreateAsync(oilMark);
3932

4033
return CreatedAtAction("GetOilMarkById", oilMark, new { id = createdOilMark.Id });
4134
}
@@ -48,15 +41,15 @@ public async Task<ActionResult<OilMarkDto>> UpdateAsync(int id, UpdateOilMarkDto
4841
return BadRequest($"Route parameter id: {id} does not match with body parameter id: {oilMark.Id}.");
4942
}
5043

51-
var updatedOilMark = await _oilMarkService.UpdateAsync(oilMark);
44+
var updatedOilMark = await oilMarkService.UpdateAsync(oilMark);
5245

5346
return Ok(updatedOilMark);
5447
}
5548

5649
[HttpDelete("{id:int}")]
5750
public async Task<ActionResult> DeleteAsync(int id)
5851
{
59-
await _oilMarkService.DeleteAsync(id);
52+
await oilMarkService.DeleteAsync(id);
6053

6154
return NoContent();
6255
}

CheckDrive.Api/CheckDrive.Application/Mappings/OilMarkMappings.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ public sealed class OilMarkMappings : Profile
99
public OilMarkMappings()
1010
{
1111
CreateMap<OilMark, OilMarkDto>();
12-
CreateMap<CreateOilMarkDto, OilMark>();
12+
CreateMap<CreateOilMarkDto, OilMark>()
13+
.ForPath(dest => dest.Name, opt => opt.MapFrom(src => src.Name));
14+
1315
CreateMap<UpdateOilMarkDto, OilMark>();
1416
}
1517
}

CheckDrive.Api/CheckDrive.Application/Services/OilMarkService.cs

+37-55
Original file line numberDiff line numberDiff line change
@@ -9,98 +9,80 @@
99

1010
namespace CheckDrive.Application.Services;
1111

12-
internal sealed class OilMarkService : IOilMarkService
12+
internal sealed class OilMarkService(ICheckDriveDbContext context, IMapper mapper) : IOilMarkService
1313
{
14-
private readonly ICheckDriveDbContext _context;
15-
private readonly IMapper _mapper;
16-
17-
public OilMarkService(ICheckDriveDbContext context, IMapper mapper)
18-
{
19-
_context = context ?? throw new ArgumentNullException(nameof(context));
20-
_mapper = mapper ?? throw new ArgumentNullException(nameof(mapper));
21-
}
22-
23-
public async Task<OilMarkDto> CreateAsync(CreateOilMarkDto oilMark)
24-
{
25-
ArgumentNullException.ThrowIfNull(oilMark);
26-
27-
var entity = _mapper.Map<OilMark>(oilMark);
28-
29-
_context.OilMarks.Add(entity);
30-
await _context.SaveChangesAsync();
31-
32-
var dto = _mapper.Map<OilMarkDto>(entity);
33-
34-
return dto;
35-
}
36-
37-
public async Task DeleteAsync(int id)
38-
{
39-
var entity = await _context.OilMarks.FirstOrDefaultAsync(x => x.Id == id);
40-
41-
if (entity is null)
42-
{
43-
throw new EntityNotFoundException($"Oil mark with id: {id} is not found.");
44-
}
45-
46-
_context.OilMarks.Remove(entity);
47-
await _context.SaveChangesAsync();
48-
}
49-
50-
public Task<List<OilMarkDto>> GetAllAsync()
51-
{
52-
var oilMarks = _context.OilMarks
53-
.Select(x => new OilMarkDto(x.Id, x.Name))
54-
.ToListAsync();
55-
56-
return oilMarks;
57-
}
58-
5914
public async Task<List<OilMarkDto>> GetAllAsync(OilMarkQueryParameters queryParameters)
6015
{
6116
ArgumentNullException.ThrowIfNull(queryParameters);
6217

63-
var query = _context.OilMarks.AsNoTracking().AsQueryable();
18+
var query = context.OilMarks.AsNoTracking().AsQueryable();
6419

6520
if (!string.IsNullOrEmpty(queryParameters.SearchText))
6621
{
6722
query = query.Where(x => x.Name.Contains(queryParameters.SearchText));
6823
}
6924

7025
var entities = await query.ToListAsync();
71-
var dtos = _mapper.Map<List<OilMarkDto>>(entities);
26+
var dtos = mapper.Map<List<OilMarkDto>>(entities);
7227

7328
return dtos;
7429
}
7530

7631
public async Task<OilMarkDto> GetByIdAsync(int id)
7732
{
78-
var entity = await _context.OilMarks.FirstOrDefaultAsync(x => x.Id == id);
33+
var entity = await context.OilMarks.FirstOrDefaultAsync(x => x.Id == id);
7934

8035
if (entity is null)
8136
{
8237
throw new EntityNotFoundException($"Oil mark with id: {id} is not found.");
8338
}
8439

85-
var dto = _mapper.Map<OilMarkDto>(entity);
40+
var dto = mapper.Map<OilMarkDto>(entity);
8641

8742
return dto;
8843
}
8944

9045
public async Task<OilMarkDto> UpdateAsync(UpdateOilMarkDto oilMark)
9146
{
92-
if (!await _context.OilMarks.AnyAsync(x => x.Id == oilMark.Id))
47+
if (!await context.OilMarks.AnyAsync(x => x.Id == oilMark.Id))
9348
{
9449
throw new EntityNotFoundException($"Oil mark with id: {oilMark.Id} is not found.");
9550
}
9651

97-
var entity = _mapper.Map<OilMark>(oilMark);
52+
var entity = mapper.Map<OilMark>(oilMark);
53+
54+
context.OilMarks.Update(entity);
55+
await context.SaveChangesAsync();
56+
57+
var dto = mapper.Map<OilMarkDto>(entity);
58+
59+
return dto;
60+
}
61+
62+
public async Task<OilMarkDto> CreateAsync(CreateOilMarkDto oilMark)
63+
{
64+
ArgumentNullException.ThrowIfNull(oilMark);
65+
66+
var entity = mapper.Map<OilMark>(oilMark);
9867

99-
_context.OilMarks.Update(entity);
100-
await _context.SaveChangesAsync();
68+
context.OilMarks.Add(entity);
69+
await context.SaveChangesAsync();
10170

102-
var dto = _mapper.Map<OilMarkDto>(entity);
71+
var dto = mapper.Map<OilMarkDto>(entity);
10372

10473
return dto;
10574
}
75+
76+
public async Task DeleteAsync(int id)
77+
{
78+
var entity = await context.OilMarks.FirstOrDefaultAsync(x => x.Id == id);
79+
80+
if (entity is null)
81+
{
82+
throw new EntityNotFoundException($"Oil mark with id: {id} is not found.");
83+
}
84+
85+
context.OilMarks.Remove(entity);
86+
await context.SaveChangesAsync();
87+
}
10688
}

0 commit comments

Comments
 (0)