#445 FixTransilerations

This commit is contained in:
Hamid Reza Mohammadi 2024-07-21 16:05:47 +03:30
parent aab4dcb778
commit a09e5b8dd2
3 changed files with 42 additions and 1 deletions

View File

@ -4286,6 +4286,21 @@ namespace RMuseum.Controllers
return Ok();
}
/// <summary>
/// one time fix for transilerations
/// </summary>
/// <returns></returns>
[HttpPut("fixtransilerations")]
[Authorize(Policy = RMuseumSecurableItem.GanjoorEntityShortName + ":" + SecurableItem.ModifyOperationShortName)]
[ProducesResponseType((int)HttpStatusCode.OK)]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public IActionResult FixTransilerations()
{
_ganjoorService.FixTransilerations();
return Ok();
}
/// <summary>
/// tajik poets
/// </summary>

View File

@ -1472,6 +1472,11 @@ namespace RMuseum.Services
/// </summary>
void Transilerate();
/// <summary>
/// one time fix for transilerations
/// </summary>
void FixTransilerations();
/// <summary>
/// tajik poets
/// </summary>

View File

@ -7,7 +7,6 @@ using System.Collections.Generic;
using RSecurityBackend.Services.Implementation;
using RMuseum.Utils;
using RMuseum.Models.Ganjoor;
using NAudio.Gui;
using System.Threading.Tasks;
namespace RMuseum.Services.Implementation
@ -151,6 +150,7 @@ namespace RMuseum.Services.Implementation
context.Add(page);
await context.SaveChangesAsync();
}
await jobProgressServiceEF.UpdateJob(job.Id, 1, "cats");
var cats = await context.TajikCats.ToListAsync();
foreach (var cat in cats)
@ -170,14 +170,35 @@ namespace RMuseum.Services.Implementation
await context.SaveChangesAsync();
}
await jobProgressServiceEF.UpdateJob(job.Id, 2, "poems");
var poems = await context.TajikPoems.ToListAsync();
foreach(var poem in poems)
{
poem.TajikTitle = LanguageUtils.CleanTextForTransileration(poem.TajikTitle);
context.Update(poem);
await context.SaveChangesAsync();
var poemPage = await context.GanjoorPages.AsNoTracking().Where(p => p.Id == poem.Id).SingleAsync();
var poemVerses = await context.GanjoorVerses.AsNoTracking().Where(v => v.PoemId == poem.Id).OrderBy(v => v.VOrder).ToListAsync();
var tajikVerses = await context.TajikVerses.AsNoTracking().Where(v => v.PoemId == poem.Id).OrderBy(v => v.VOrder).ToListAsync();
foreach (var poemVerse in poemVerses)
{
poemVerse.Text = LanguageUtils.CleanTextForTransileration(tajikVerses.Where(v => v.VOrder == poemVerse.VOrder).Single().TajikText);
}
GanjoorTajikPage page = new GanjoorTajikPage()
{
Id = poemPage.Id,
TajikHtmlText = PrepareHtmlText(poemVerses)
};
context.Add(page);
await context.SaveChangesAsync();
}
await jobProgressServiceEF.UpdateJob(job.Id, 2, "verses");
var verses = await context.TajikVerses.ToListAsync();
foreach (var verse in verses)
{