Поиск Done
This commit is contained in:
parent
0717772516
commit
b80493698a
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user