0
0

Order found products by IsOnWarehouse property

This commit is contained in:
Sergey Chebotar 2023-05-12 07:46:06 +03:00
parent b7e4bf6887
commit bdf5f4f727

View File

@ -4,24 +4,25 @@ using RhSolutions.Models;
namespace RhSolutions.Api.Controllers namespace RhSolutions.Api.Controllers
{ {
[Route("api/[controller]")] [Route("api/[controller]")]
public class SearchController : ControllerBase public class SearchController : ControllerBase
{ {
private RhSolutionsContext context; private RhSolutionsContext context;
public SearchController(RhSolutionsContext context) public SearchController(RhSolutionsContext context)
{ {
this.context = context; this.context = context;
} }
[HttpGet] [HttpGet]
public IAsyncEnumerable<Product> SearchProducts([FromQuery] string query) public IAsyncEnumerable<Product> SearchProducts([FromQuery] string query)
{ {
return context.Products return context.Products
.Where(p => EF.Functions.ToTsVector( .Where(p => EF.Functions.ToTsVector(
"russian", string.Join(' ', new[] { p.Name, string.Join(' ', p.ProductLines)})) "russian", string.Join(' ', new[] { p.Name, string.Join(' ', p.ProductLines)}))
.Matches(EF.Functions.WebSearchToTsQuery("russian", query))) .Matches(EF.Functions.WebSearchToTsQuery("russian", query)))
.AsAsyncEnumerable(); .OrderByDescending(p => p.IsOnWarehouse)
} .AsAsyncEnumerable();
} }
}
} }