Add functionality to download all translations.
This commit is contained in:
@@ -62,7 +62,8 @@ namespace CarCareTracker.Controllers
|
||||
{
|
||||
vehiclesStored = _userLogic.FilterUserVehicles(vehiclesStored, GetUserID());
|
||||
}
|
||||
var vehicleViewModels = vehiclesStored.Select(x => {
|
||||
var vehicleViewModels = vehiclesStored.Select(x =>
|
||||
{
|
||||
var vehicleVM = new VehicleViewModel
|
||||
{
|
||||
Id = x.Id,
|
||||
@@ -224,7 +225,8 @@ namespace CarCareTracker.Controllers
|
||||
return Json(result);
|
||||
}
|
||||
return Json(false);
|
||||
} catch (Exception ex)
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex.Message);
|
||||
return Json(false);
|
||||
@@ -311,7 +313,8 @@ namespace CarCareTracker.Controllers
|
||||
if (translationData.Any())
|
||||
{
|
||||
_translationHelper.SaveTranslation(name, translationData);
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogError($"Unable to download translation: {name}");
|
||||
return Json(false);
|
||||
@@ -324,6 +327,125 @@ namespace CarCareTracker.Controllers
|
||||
return Json(false);
|
||||
}
|
||||
}
|
||||
[Authorize(Roles = nameof(UserData.IsRootUser))]
|
||||
[HttpGet]
|
||||
public async Task<IActionResult> DownloadAllTranslations()
|
||||
{
|
||||
try
|
||||
{
|
||||
var httpClient = new HttpClient();
|
||||
var translations = await httpClient.GetFromJsonAsync<Translations>(StaticHelper.TranslationDirectoryPath) ?? new Translations();
|
||||
int translationsDownloaded = 0;
|
||||
foreach (string translation in translations.Asia)
|
||||
{
|
||||
try
|
||||
{
|
||||
var translationData = await httpClient.GetFromJsonAsync<Dictionary<string, string>>(StaticHelper.GetTranslationDownloadPath("Asia", translation)) ?? new Dictionary<string, string>();
|
||||
if (translationData.Any())
|
||||
{
|
||||
_translationHelper.SaveTranslation(translation, translationData);
|
||||
translationsDownloaded++;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"Error Downloading Translation {translation}: {ex.Message} ");
|
||||
}
|
||||
}
|
||||
foreach (string translation in translations.Africa)
|
||||
{
|
||||
try
|
||||
{
|
||||
var translationData = await httpClient.GetFromJsonAsync<Dictionary<string, string>>(StaticHelper.GetTranslationDownloadPath("Africa", translation)) ?? new Dictionary<string, string>();
|
||||
if (translationData.Any())
|
||||
{
|
||||
_translationHelper.SaveTranslation(translation, translationData);
|
||||
translationsDownloaded++;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"Error Downloading Translation {translation}: {ex.Message} ");
|
||||
}
|
||||
}
|
||||
foreach (string translation in translations.Europe)
|
||||
{
|
||||
try
|
||||
{
|
||||
var translationData = await httpClient.GetFromJsonAsync<Dictionary<string, string>>(StaticHelper.GetTranslationDownloadPath("Europe", translation)) ?? new Dictionary<string, string>();
|
||||
if (translationData.Any())
|
||||
{
|
||||
_translationHelper.SaveTranslation(translation, translationData);
|
||||
translationsDownloaded++;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"Error Downloading Translation {translation}: {ex.Message} ");
|
||||
}
|
||||
}
|
||||
foreach (string translation in translations.NorthAmerica)
|
||||
{
|
||||
try
|
||||
{
|
||||
var translationData = await httpClient.GetFromJsonAsync<Dictionary<string, string>>(StaticHelper.GetTranslationDownloadPath("NorthAmerica", translation)) ?? new Dictionary<string, string>();
|
||||
if (translationData.Any())
|
||||
{
|
||||
_translationHelper.SaveTranslation(translation, translationData);
|
||||
translationsDownloaded++;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"Error Downloading Translation {translation}: {ex.Message} ");
|
||||
}
|
||||
}
|
||||
foreach (string translation in translations.SouthAmerica)
|
||||
{
|
||||
try
|
||||
{
|
||||
var translationData = await httpClient.GetFromJsonAsync<Dictionary<string, string>>(StaticHelper.GetTranslationDownloadPath("SouthAmerica", translation)) ?? new Dictionary<string, string>();
|
||||
if (translationData.Any())
|
||||
{
|
||||
_translationHelper.SaveTranslation(translation, translationData);
|
||||
translationsDownloaded++;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"Error Downloading Translation {translation}: {ex.Message} ");
|
||||
}
|
||||
}
|
||||
foreach (string translation in translations.Oceania)
|
||||
{
|
||||
try
|
||||
{
|
||||
var translationData = await httpClient.GetFromJsonAsync<Dictionary<string, string>>(StaticHelper.GetTranslationDownloadPath("Oceania", translation)) ?? new Dictionary<string, string>();
|
||||
if (translationData.Any())
|
||||
{
|
||||
_translationHelper.SaveTranslation(translation, translationData);
|
||||
translationsDownloaded++;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"Error Downloading Translation {translation}: {ex.Message} ");
|
||||
}
|
||||
}
|
||||
if (translationsDownloaded > 0)
|
||||
{
|
||||
return Json(new OperationResponse() { Success = true, Message = $"{translationsDownloaded} Translations Downloaded" });
|
||||
} else
|
||||
{
|
||||
return Json(new OperationResponse() { Success = false, Message = "No Translations Downloaded" });
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"Unable to retrieve translations: {ex.Message}");
|
||||
return Json(new OperationResponse() { Success = false, Message = StaticHelper.GenericErrorMessage });
|
||||
}
|
||||
}
|
||||
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
||||
public IActionResult Error()
|
||||
{
|
||||
|
||||
@@ -72,4 +72,5 @@
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" onclick="hideTranslationDownloader()">@translator.Translate(userLanguage, "Cancel")</button>
|
||||
<button type="button" class="btn btn-primary" onclick="downloadAllTranslations()">@translator.Translate(userLanguage, "Download All Translations")</button>
|
||||
</div>
|
||||
File diff suppressed because one or more lines are too long
@@ -244,7 +244,9 @@ function hideTranslationDownloader() {
|
||||
$('#translationDownloadModal').modal('hide');
|
||||
}
|
||||
function downloadTranslation(continent, name) {
|
||||
sloader.show();
|
||||
$.get(`/Home/DownloadTranslation?continent=${continent}&name=${name}`, function (data) {
|
||||
sloader.hide();
|
||||
if (data) {
|
||||
successToast("Translation Downloaded");
|
||||
updateSettings();
|
||||
@@ -253,3 +255,15 @@ function downloadTranslation(continent, name) {
|
||||
}
|
||||
})
|
||||
}
|
||||
function downloadAllTranslations() {
|
||||
sloader.show();
|
||||
$.get('/Home/DownloadAllTranslations', function (data) {
|
||||
sloader.hide();
|
||||
if (data.success) {
|
||||
successToast(data.message);
|
||||
updateSettings();
|
||||
} else {
|
||||
errorToast(data.message);
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user