diff --git a/.version b/.version index ddd44eb..83ad960 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -0.27.37.59 \ No newline at end of file +0.27.38.60 \ No newline at end of file diff --git a/Netina.Api/Netina.Api.csproj b/Netina.Api/Netina.Api.csproj index 9a98232..26f9eba 100644 --- a/Netina.Api/Netina.Api.csproj +++ b/Netina.Api/Netina.Api.csproj @@ -6,8 +6,8 @@ enable true Linux - 0.27.37.59 - 0.27.37.59 + 0.27.38.60 + 0.27.38.60 diff --git a/Netina.Api/Program.cs b/Netina.Api/Program.cs index a200ed6..c3d3365 100644 --- a/Netina.Api/Program.cs +++ b/Netina.Api/Program.cs @@ -8,7 +8,7 @@ string env = builder.Environment.IsDevelopment() == true ? "Development" : "Prod builder.Host.UseContentRoot(Directory.GetCurrentDirectory()); if (builder.Environment.IsDevelopment()) { - string projectName = "Hamyan"; + string projectName = "Vesmeh"; builder.Configuration.AddJsonFile($"AppSettings/appsettings.json").AddJsonFile($"AppSettings/appsettings.{env}{projectName}.json"); } diff --git a/Netina.Api/WebFramework/Configurations/ServiceExtensions.cs b/Netina.Api/WebFramework/Configurations/ServiceExtensions.cs index b350568..977c174 100644 --- a/Netina.Api/WebFramework/Configurations/ServiceExtensions.cs +++ b/Netina.Api/WebFramework/Configurations/ServiceExtensions.cs @@ -74,7 +74,7 @@ public static class ServiceExtensions options.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking); options.UseNpgsql(Configuration.GetConnectionString("Postgres"), b => b.MigrationsAssembly("Netina.Repository")) .UseProjectAssembly(typeof(ApplicationUser).Assembly); - + //options.EnableServiceProviderCaching(true); }).BuildServiceProvider(); AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); diff --git a/Netina.Core/Abstracts/IStorageService.cs b/Netina.Core/Abstracts/IStorageService.cs index 2390367..3dfb2ba 100644 --- a/Netina.Core/Abstracts/IStorageService.cs +++ b/Netina.Core/Abstracts/IStorageService.cs @@ -1,8 +1,4 @@ -using Netina.Common.Models; -using Netina.Domain.Dtos.SmallDtos; -using Netina.Domain.Enums; - -namespace Netina.Core.Abstracts; +namespace Netina.Core.Abstracts; public interface IStorageService : IScopedDependency { diff --git a/Netina.Core/CoreServices/SearchService.cs b/Netina.Core/CoreServices/SearchService.cs index c14dc2f..2456e83 100644 --- a/Netina.Core/CoreServices/SearchService.cs +++ b/Netina.Core/CoreServices/SearchService.cs @@ -15,17 +15,17 @@ public class SearchService : ISearchService } public async Task SearchAsync(string name, CancellationToken cancellationToken = default) { - var searchQuery = name.ToLowerInvariant().Trim(); + var searchQuery = name.ToLower().Trim(); int minSimilarityThreshold = 20; var products = await _repositoryWrapper.SetRepository() .TableNoTracking - .Where(p => FuzzySharp.Fuzz.PartialRatio(p.PersianName.ToLowerInvariant().Trim(), searchQuery) >= minSimilarityThreshold) + .Where(p => FuzzySharp.Fuzz.PartialRatio(p.PersianName.ToLower().Trim(), searchQuery) >= minSimilarityThreshold) .Select(ProductMapper.ProjectToSDto) .ToListAsync(cancellationToken); var categories = await _repositoryWrapper.SetRepository() .TableNoTracking - .Where(p => FuzzySharp.Fuzz.PartialRatio(p.Name.ToLowerInvariant().Trim(), searchQuery) >= minSimilarityThreshold) + .Where(p => FuzzySharp.Fuzz.PartialRatio(p.Name.ToLower().Trim(), searchQuery) >= minSimilarityThreshold) .Select(ProductCategoryMapper.ProjectToSDto) .ToListAsync(cancellationToken); @@ -38,21 +38,22 @@ public class SearchService : ISearchService public async Task ThumbSearchAsync(string name, CancellationToken cancellationToken = default) { - var searchQuery = name.ToLowerInvariant().Trim(); - int minSimilarityThreshold = 20; + var searchQuery = name; + var products = await _repositoryWrapper.SetRepository() .TableNoTracking - .Where(p => FuzzySharp.Fuzz.PartialRatio(p.PersianName.ToLowerInvariant().Trim(), searchQuery) >= minSimilarityThreshold) + .OrderByDescending(p => EF.Functions.TrigramsSimilarity(p.PersianName, searchQuery)) .Take(8) .Select(ProductMapper.ProjectToSDto) .ToListAsync(cancellationToken); var categories = await _repositoryWrapper.SetRepository() .TableNoTracking - .Where(p => FuzzySharp.Fuzz.PartialRatio(p.Name.ToLowerInvariant().Trim(), searchQuery) >= minSimilarityThreshold) + .OrderByDescending(p => EF.Functions.TrigramsSimilarity(p.Name.ToLower().Trim(), searchQuery)) + .Take(8) .Select(ProductCategoryMapper.ProjectToSDto) .ToListAsync(cancellationToken); - + return new SearchResponseDto { Products = products.Select(p => p.Adapt()).ToList(), diff --git a/Netina.Infrastructure/Marten/MartenRepositoryWrapper.cs b/Netina.Infrastructure/Marten/MartenRepositoryWrapper.cs index 8bc5407..9d9d7b4 100644 --- a/Netina.Infrastructure/Marten/MartenRepositoryWrapper.cs +++ b/Netina.Infrastructure/Marten/MartenRepositoryWrapper.cs @@ -1,6 +1,4 @@ using Marten; -using Netina.Common.Models.Entity; -using Netina.Repository.Repositories.Marten; namespace Netina.Infrastructure.Marten; diff --git a/Netina.Repository/Models/ApplicationContext.cs b/Netina.Repository/Models/ApplicationContext.cs index 4468692..f6e9439 100644 --- a/Netina.Repository/Models/ApplicationContext.cs +++ b/Netina.Repository/Models/ApplicationContext.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; +using System.Reflection.Emit; namespace Netina.Repository.Models; @@ -26,6 +27,10 @@ public class ApplicationContext : IdentityDbContext FuzzyStringMatchDifference(default, default)); + RenameIdentityTables(builder); builder.RegisterEntityTypeConfiguration(entitiesAssembly); builder.AddPluralizingTableNameConvention(); @@ -33,6 +38,11 @@ public class ApplicationContext : IdentityDbContext