#445 updating transilerate method
This commit is contained in:
parent
a706d9d7b4
commit
24800ab260
@ -4306,21 +4306,6 @@ 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>
|
||||
|
||||
@ -1478,11 +1478,6 @@ namespace RMuseum.Services
|
||||
/// </summary>
|
||||
void Transilerate();
|
||||
|
||||
/// <summary>
|
||||
/// one time fix for transilerations
|
||||
/// </summary>
|
||||
void FixTransilerations();
|
||||
|
||||
/// <summary>
|
||||
/// tajik poets
|
||||
/// </summary>
|
||||
|
||||
@ -8,6 +8,7 @@ using RSecurityBackend.Services.Implementation;
|
||||
using RMuseum.Utils;
|
||||
using RMuseum.Models.Ganjoor;
|
||||
using System.Threading.Tasks;
|
||||
using RMuseum.Migrations;
|
||||
|
||||
namespace RMuseum.Services.Implementation
|
||||
{
|
||||
@ -60,6 +61,7 @@ namespace RMuseum.Services.Implementation
|
||||
TajikText = TajikTransilerator.Transilerate(verse.Text, formData),
|
||||
};
|
||||
context.Add(tajikVerse);
|
||||
verse.Text = tajikVerse.TajikText;
|
||||
}
|
||||
}
|
||||
|
||||
@ -70,8 +72,17 @@ namespace RMuseum.Services.Implementation
|
||||
Id = poem.Id,
|
||||
CatId = poem.CatId,
|
||||
TajikTitle = TajikTransilerator.Transilerate(poem.Title, formData),
|
||||
TajikPlainText = PreparePlainText(verses)
|
||||
};
|
||||
context.Add(tajikPoem);
|
||||
|
||||
GanjoorTajikPage page = new GanjoorTajikPage()
|
||||
{
|
||||
Id = tajikPoem.Id,
|
||||
TajikHtmlText = PrepareHtmlText(verses)
|
||||
};
|
||||
context.Add(page);
|
||||
|
||||
}
|
||||
|
||||
await jobProgressServiceEF.UpdateJob(job.Id, poet.Id, poet.Nickname + $" - cat: {catId} - poem: {poem.Id}");
|
||||
@ -88,6 +99,18 @@ namespace RMuseum.Services.Implementation
|
||||
};
|
||||
context.Add(tajikCat);
|
||||
await context.SaveChangesAsync();
|
||||
|
||||
var catPage = await context.GanjoorPages.AsNoTracking().Where(p => p.GanjoorPageType == GanjoorPageType.CatPage && p.CatId == cat.Id).SingleOrDefaultAsync();
|
||||
if (catPage != null)
|
||||
{
|
||||
GanjoorTajikPage page = new GanjoorTajikPage()
|
||||
{
|
||||
Id = catPage.Id,
|
||||
TajikHtmlText = await PrepareTajikCatHtmlTextAsync(context, tajikCat),
|
||||
};
|
||||
context.Add(page);
|
||||
await context.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -101,115 +124,18 @@ namespace RMuseum.Services.Implementation
|
||||
};
|
||||
context.Add(tajikPoet);
|
||||
await context.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
await jobProgressServiceEF.UpdateJob(job.Id, 100, "", true);
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
await jobProgressServiceEF.UpdateJob(job.Id, 100, "", false, exp.ToString());
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// one time fix for transilerations
|
||||
/// </summary>
|
||||
public void FixTransilerations()
|
||||
{
|
||||
_backgroundTaskQueue.QueueBackgroundWorkItem
|
||||
(
|
||||
async token =>
|
||||
{
|
||||
using (RMuseumDbContext context = new RMuseumDbContext(new DbContextOptions<RMuseumDbContext>())) //this is long running job, so _context might be already been freed/collected by GC
|
||||
{
|
||||
LongRunningJobProgressServiceEF jobProgressServiceEF = new LongRunningJobProgressServiceEF(context);
|
||||
var job = (await jobProgressServiceEF.NewJob($"FixTransilerations", "Query data")).Result;
|
||||
try
|
||||
{
|
||||
|
||||
var poets = await context.TajikPoets.ToListAsync();
|
||||
foreach (var poet in poets)
|
||||
{
|
||||
poet.TajikNickname = LanguageUtils.CleanTextForTransileration(poet.TajikNickname);
|
||||
poet.TajikDescription = LanguageUtils.CleanTextForTransileration(poet.TajikDescription);
|
||||
context.Update(poet);
|
||||
await context.SaveChangesAsync();
|
||||
|
||||
var poetPage = await context.GanjoorPages.AsNoTracking().Where(p => p.GanjoorPageType == GanjoorPageType.PoetPage && p.PoetId == poet.Id).SingleAsync();
|
||||
GanjoorTajikPage page = new GanjoorTajikPage()
|
||||
{
|
||||
Id = poetPage.Id,
|
||||
TajikHtmlText = await PrepareTajikPoetHtmlTextAsync(context, poet),
|
||||
};
|
||||
context.Add(page);
|
||||
await context.SaveChangesAsync();
|
||||
}
|
||||
await jobProgressServiceEF.UpdateJob(job.Id, 1, "cats");
|
||||
|
||||
var cats = await context.TajikCats.ToListAsync();
|
||||
foreach (var cat in cats)
|
||||
{
|
||||
cat.TajikTitle = LanguageUtils.CleanTextForTransileration(cat.TajikTitle);
|
||||
cat.TajikDescription = LanguageUtils.CleanTextForTransileration(cat.TajikDescription);
|
||||
context.Update(cat);
|
||||
await context.SaveChangesAsync();
|
||||
|
||||
var catPage = await context.GanjoorPages.AsNoTracking().Where(p => p.GanjoorPageType == GanjoorPageType.CatPage && p.CatId == cat.Id).SingleOrDefaultAsync();
|
||||
if (catPage != null)
|
||||
{
|
||||
var poetPage = await context.GanjoorPages.AsNoTracking().Where(p => p.GanjoorPageType == GanjoorPageType.PoetPage && p.PoetId == poet.Id).SingleAsync();
|
||||
GanjoorTajikPage page = new GanjoorTajikPage()
|
||||
{
|
||||
Id = catPage.Id,
|
||||
TajikHtmlText = await PrepareTajikCatHtmlTextAsync(context, cat),
|
||||
Id = poetPage.Id,
|
||||
TajikHtmlText = await PrepareTajikPoetHtmlTextAsync(context, tajikPoet),
|
||||
};
|
||||
context.Add(page);
|
||||
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);
|
||||
|
||||
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();
|
||||
|
||||
poem.TajikPlainText = PreparePlainText(poemVerses);
|
||||
context.Update(poem);
|
||||
await context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
await jobProgressServiceEF.UpdateJob(job.Id, 3, "verses");
|
||||
|
||||
var verses = await context.TajikVerses.ToListAsync();
|
||||
foreach (var verse in verses)
|
||||
{
|
||||
verse.TajikText = LanguageUtils.CleanTextForTransileration(verse.TajikText);
|
||||
context.Update(verse);
|
||||
await context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
await jobProgressServiceEF.UpdateJob(job.Id, 100, "", true);
|
||||
}
|
||||
@ -221,6 +147,8 @@ namespace RMuseum.Services.Implementation
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private async Task<string> PrepareTajikPoetHtmlTextAsync(RMuseumDbContext context, GanjoorTajikPoet poet)
|
||||
{
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user