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