Поиск Done

This commit is contained in:
romai 2024-12-12 00:44:42 +04:00
parent 0717772516
commit b80493698a
6 changed files with 37 additions and 2 deletions
Address Directory
Domain/Repository
Persistence/Repositories
Services.Abstractions
Services
Web/Controllers

@ -9,5 +9,7 @@ namespace Domain.Repository
Task AddAsync(City city);
Task UpdateAsync(City city);
Task DeleteAsync(City city);
}
}

@ -9,5 +9,8 @@ namespace Domain.Repository
Task AddAsync(Street street);
Task UpdateAsync(Street street);
Task DeleteAsync(Street street);
//Фичи
Task<List<Street>> SearchAsync(string query);
}
}

@ -37,6 +37,14 @@ namespace Persistence.Repositories
.FirstOrDefaultAsync(s => s.Id == id);
}
public async Task<List<Street>> SearchAsync(string query)
{
return await _dbContext.Streets
.Where(s => s.Name.Contains(query))
.OrderBy(s => s.Name)
.ToListAsync();
}
public async Task UpdateAsync(Street street)
{
_dbContext.Streets.Update(street);

@ -1,4 +1,5 @@
using Contracts;
using Domain.Entities;
namespace Services.Abstractions
{
@ -9,5 +10,8 @@ namespace Services.Abstractions
Task<StreetDto> CreateAsync(StreetDtoForCreate streetDto);
Task UpdateAsync(Guid streetId, StreetDtoForUpdate street);
Task DeleteAsync(Guid streetId);
//Фичи
Task<List<StreetDto>> SearchAsync(string query);
}
}

@ -53,6 +53,16 @@ namespace Services
return _mapper.Map<StreetDto>(street);
}
public async Task<List<StreetDto>> SearchAsync(string query)
{
if (query == null)
{
throw new KeyNotFoundException("Query cannot be empty");
}
var streets = await _streetRepository.SearchAsync(query);
return _mapper.Map<List<StreetDto>>(streets);
}
public async Task UpdateAsync(Guid streetId, StreetDtoForUpdate streetDto)
{
var street = await _streetRepository.GetByIdAsync(streetId);

@ -16,8 +16,8 @@ namespace Web.Controllers
[HttpGet]
public async Task<IActionResult> GetAllAsync()
{
var cities = await _streetService.GetAllAsync();
return Ok(cities);
var steets = await _streetService.GetAllAsync();
return Ok(steets);
}
[HttpGet("{id:guid}")]
public async Task<IActionResult> GetByIdAsync(Guid id)
@ -73,5 +73,13 @@ namespace Web.Controllers
return NoContent();
}
//Фичи
[HttpGet("search")]
public async Task<IActionResult> SearchStreet([FromQuery] string query)
{
var streets = await _streetService.SearchAsync(query);
return Ok(streets);
}
}
}