Added progress calculation for sections & texts; covered corner cases
This commit is contained in:
parent
8534163e55
commit
ebc7a5708b
@ -60,6 +60,54 @@ public static class TranslationProcessor
|
||||
var numTotalTranslations = numCultures * numTextElements;
|
||||
var numTextElementsTranslated = await db.Translations.CountAsync(n => !string.IsNullOrWhiteSpace(n.Text));
|
||||
|
||||
if(numTextElementsTranslated == 0 && numTotalTranslations == 0)
|
||||
return new ProcessorResult<int>(100);
|
||||
|
||||
if (numTotalTranslations == 0)
|
||||
return new ProcessorResult<int>(0);
|
||||
|
||||
if(numTextElementsTranslated > numTotalTranslations)
|
||||
return new ProcessorResult<int>(100);
|
||||
|
||||
return new ProcessorResult<int>(numTextElementsTranslated * 100 / numTotalTranslations);
|
||||
}
|
||||
|
||||
public static async Task<ProcessorResult<int>> CalculateTranslationProgress(Section section)
|
||||
{
|
||||
await using var db = ProcessorMeta.ServiceProvider.GetRequiredService<DataContext>();
|
||||
var numCultures = (await AppSettings.GetCultureIndices()).Count;
|
||||
var numTextElements = await db.TextElements.CountAsync(n => n.Section == section);
|
||||
var numTotalTranslations = numCultures * numTextElements;
|
||||
var numTextElementsTranslated = await db.Translations.CountAsync(n => !string.IsNullOrWhiteSpace(n.Text) && n.TextElement.Section == section);
|
||||
|
||||
if(numTextElementsTranslated == 0 && numTotalTranslations == 0)
|
||||
return new ProcessorResult<int>(100);
|
||||
|
||||
if (numTotalTranslations == 0)
|
||||
return new ProcessorResult<int>(0);
|
||||
|
||||
if(numTextElementsTranslated > numTotalTranslations)
|
||||
return new ProcessorResult<int>(100);
|
||||
|
||||
return new ProcessorResult<int>(numTextElementsTranslated * 100 / numTotalTranslations);
|
||||
}
|
||||
|
||||
public static async Task<ProcessorResult<int>> CalculateTranslationProgress(TextElement textElement)
|
||||
{
|
||||
await using var db = ProcessorMeta.ServiceProvider.GetRequiredService<DataContext>();
|
||||
var numCultures = (await AppSettings.GetCultureIndices()).Count;
|
||||
var numTotalTranslations = numCultures;
|
||||
var numTextElementsTranslated = await db.Translations.CountAsync(n => !string.IsNullOrWhiteSpace(n.Text) && n.TextElement == textElement);
|
||||
|
||||
if(numTextElementsTranslated == 0 && numTotalTranslations == 0)
|
||||
return new ProcessorResult<int>(100);
|
||||
|
||||
if (numTotalTranslations == 0)
|
||||
return new ProcessorResult<int>(0);
|
||||
|
||||
if(numTextElementsTranslated > numTotalTranslations)
|
||||
return new ProcessorResult<int>(100);
|
||||
|
||||
return new ProcessorResult<int>(numTextElementsTranslated * 100 / numTotalTranslations);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user