From 108230cc15024218e8d80faf229bf9d0ca9009ae Mon Sep 17 00:00:00 2001 From: "Amir.H Khademi" Date: Thu, 25 Apr 2024 22:54:02 +0330 Subject: [PATCH] feat : add thumb search , add version 0.25.28.49 --- .version | 2 +- Netina.Api/Controller/SearchController.cs | 8 +++++++ Netina.Api/Netina.Api.csproj | 4 ++-- .../CoreServices/Abstracts/ISearchService.cs | 1 + Netina.Core/CoreServices/SearchService.cs | 22 +++++++++++++++++++ 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/.version b/.version index 1e4fe9a..e4d8c4b 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -0.25.27.48 \ No newline at end of file +0.25.28.49 \ No newline at end of file diff --git a/Netina.Api/Controller/SearchController.cs b/Netina.Api/Controller/SearchController.cs index 61c92a1..4922e86 100644 --- a/Netina.Api/Controller/SearchController.cs +++ b/Netina.Api/Controller/SearchController.cs @@ -12,11 +12,19 @@ public class SearchController : ICarterModule .WithDisplayName("Search Async") .HasApiVersion(1.0); + group.MapGet("/thumb", SearchThumbAsync) + .WithDisplayName("Thumb Search Async") + .HasApiVersion(1.0); + group.MapGet("zarehbin", ZarehbinAsync) .WithDisplayName("Search Async") .HasApiVersion(1.0); } + private async Task SearchThumbAsync([FromQuery] string name, [FromServices] ISearchService searchService, CancellationToken cancellationToken) + => TypedResults.Ok(await searchService.ThumbSearchAsync(name, cancellationToken)); + + private async Task SearchAsync([FromQuery] string name, [FromServices] ISearchService searchService, CancellationToken cancellationToken) => TypedResults.Ok(await searchService.SearchAsync(name, cancellationToken)); diff --git a/Netina.Api/Netina.Api.csproj b/Netina.Api/Netina.Api.csproj index 44c0289..d6c6d42 100644 --- a/Netina.Api/Netina.Api.csproj +++ b/Netina.Api/Netina.Api.csproj @@ -6,8 +6,8 @@ enable true Linux - 0.25.27.48 - 0.25.27.48 + 0.25.28.49 + 0.25.28.49 diff --git a/Netina.Core/CoreServices/Abstracts/ISearchService.cs b/Netina.Core/CoreServices/Abstracts/ISearchService.cs index 195275b..2552f15 100644 --- a/Netina.Core/CoreServices/Abstracts/ISearchService.cs +++ b/Netina.Core/CoreServices/Abstracts/ISearchService.cs @@ -5,6 +5,7 @@ namespace Netina.Core.CoreServices.Abstracts; public interface ISearchService : IScopedDependency { public Task SearchAsync(string name,CancellationToken cancellationToken = default); + public Task ThumbSearchAsync(string name,CancellationToken cancellationToken = default); public Task ZarehbinAsync(int page,CancellationToken cancellationToken = default); public Task ZarehbinAsync(Guid productId,CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/Netina.Core/CoreServices/SearchService.cs b/Netina.Core/CoreServices/SearchService.cs index 920a522..4165fb7 100644 --- a/Netina.Core/CoreServices/SearchService.cs +++ b/Netina.Core/CoreServices/SearchService.cs @@ -32,6 +32,28 @@ public class SearchService : ISearchService }; } + public async Task ThumbSearchAsync(string name, CancellationToken cancellationToken = default) + { + var products = await _repositoryWrapper.SetRepository() + .TableNoTracking + .Where(p => p.PersianName.Trim().ToLower().Contains(name.Trim().ToLower())) + .Take(8) + .Select(ProductMapper.ProjectToSDto) + .ToListAsync(cancellationToken); + + var categories = await _repositoryWrapper.SetRepository() + .TableNoTracking + .Where(p => p.Name.Trim().ToLower().Contains(name.Trim().ToLower())) + .Select(ProductCategoryMapper.ProjectToSDto) + .ToListAsync(cancellationToken); + + return new SearchResponseDto + { + Products = products.Select(p => p.Adapt()).ToList(), + Categories = categories.Select(c => c.Adapt()).ToList() + }; + } + public Task ZarehbinAsync(int page, CancellationToken cancellationToken = default) { throw new NotImplementedException();