diff --git a/GanjooRazor/Areas/Admin/Pages/CatTrans.cshtml b/GanjooRazor/Areas/Admin/Pages/CatTrans.cshtml
index a1076460..402ba8fc 100644
--- a/GanjooRazor/Areas/Admin/Pages/CatTrans.cshtml
+++ b/GanjooRazor/Areas/Admin/Pages/CatTrans.cshtml
@@ -21,19 +21,31 @@ else
@foreach (var poem in Model.Poems)
- {
-
- |
- @poem.SrcPoemFullTitle
- |
-
- @if(!string.IsNullOrEmpty(poem.DestPoemFullUrl))
+ {
+ |
+ |
+ @poem.SrcPoemFullTitle
+ |
+
+ @if (!string.IsNullOrEmpty(poem.DestPoemFullUrl))
{
@poem.DestPoemFullTitle
}
|
-
- }
+
+ }
+
+
+
+
+ | مشابهیابی در بخش: |
+
+
+ |
+
}
diff --git a/GanjooRazor/Areas/Admin/Pages/CatTrans.cshtml.cs b/GanjooRazor/Areas/Admin/Pages/CatTrans.cshtml.cs
index 6aebd200..9b7906d6 100644
--- a/GanjooRazor/Areas/Admin/Pages/CatTrans.cshtml.cs
+++ b/GanjooRazor/Areas/Admin/Pages/CatTrans.cshtml.cs
@@ -27,6 +27,18 @@ namespace GanjooRazor.Areas.Admin.Pages
///
public GanjoorDuplicateViewModel[] Poems { get; set; }
+
+ ///
+ /// cat id
+ ///
+ public int CatId { get; set; }
+
+ ///
+ /// dest cat Id
+ ///
+ [BindProperty]
+ public int DestCatId { get; set; }
+
private async Task _GetCatDuplicatesAsync()
{
if (string.IsNullOrEmpty(Request.Query["id"]))
@@ -34,12 +46,12 @@ namespace GanjooRazor.Areas.Admin.Pages
LastMessage = "شناسهٔ بخش مشخص نیست.";
return false;
}
- var id = Request.Query["id"];
+ CatId = int.Parse(Request.Query["id"]);
using (HttpClient secureClient = new HttpClient())
{
- if(await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
+ if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
{
- HttpResponseMessage response = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/duplicates/{id}");
+ HttpResponseMessage response = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/duplicates/{CatId}");
if (!response.IsSuccessStatusCode)
{
LastMessage = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync());
@@ -67,5 +79,33 @@ namespace GanjooRazor.Areas.Admin.Pages
return Page();
}
+
+ public async Task OnPostFindDuplicatesAsync()
+ {
+ CatId = int.Parse(Request.Query["id"]);
+ using (HttpClient secureClient = new HttpClient())
+ {
+ if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
+ {
+ HttpResponseMessage response = await secureClient.PostAsync($"{APIRoot.Url}/api/ganjoor/duplicates/{CatId}/{DestCatId}", null);
+ if (!response.IsSuccessStatusCode)
+ {
+ LastMessage = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync());
+ return Page();
+ }
+ else
+ {
+ LastMessage = "فرایند شروع شد.";
+ return Page();
+ }
+ }
+ else
+ {
+ LastMessage = "لطفا از گنجور خارج و مجددا به آن وارد شوید.";
+ return Page();
+ }
+ }
+ }
}
+
}
diff --git a/GanjooRazor/Pages/t6e.cshtml.cs b/GanjooRazor/Pages/t6e.cshtml.cs
index 62c108c4..2d8ce5c3 100644
--- a/GanjooRazor/Pages/t6e.cshtml.cs
+++ b/GanjooRazor/Pages/t6e.cshtml.cs
@@ -1,14 +1,9 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
-
using System.Net.Http;
using System.Threading.Tasks;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.RazorPages;
-using Microsoft.Extensions.Configuration;
using Newtonsoft.Json;
using RMuseum.Models.Ganjoor.ViewModels;
-using RMuseum.Models.GanjoorAudio.ViewModels;
namespace GanjooRazor.Pages
{
diff --git a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-DuplicateFinder.cs b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-DuplicateFinder.cs
index 5af8b4df..414002fd 100644
--- a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-DuplicateFinder.cs
+++ b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-DuplicateFinder.cs
@@ -197,21 +197,26 @@ namespace RMuseum.Services.Implementation
if (found) continue;
foreach (var probable in targetPoems)
{
- var meVerse = await context.GanjoorVerses.AsNoTracking().Where(p => p.PoemId == probable.Id).OrderBy(v => v.VOrder).FirstAsync();
- if (_AreSimilar(firstVerse.Text, meVerse.Text, false))
+ var targetVerses = await context.GanjoorVerses.AsNoTracking().Where(p => p.PoemId == probable.Id).OrderBy(v => v.VOrder).ToListAsync();
+ foreach (var targetVerse in targetVerses)
{
- context.GanjoorDuplicates.Add
- (
- new GanjoorDuplicate()
- {
- SrcCatId = srcCatId,
- SrcPoemId = poem.Id,
- DestPoemId = probable.Id
- }
- );
- await context.SaveChangesAsync();
- break;
+ if (_AreSimilar(firstVerse.Text, targetVerse.Text, false))
+ {
+ context.GanjoorDuplicates.Add
+ (
+ new GanjoorDuplicate()
+ {
+ SrcCatId = srcCatId,
+ SrcPoemId = poem.Id,
+ DestPoemId = probable.Id
+ }
+ );
+ await context.SaveChangesAsync();
+ found = true;
+ break;
+ }
}
+ if (found) break;
}
}
return new RServiceResult(true);