2023-02-18 08:52:17 +01:00
|
|
|
using MongoDB.Entities;
|
|
|
|
|
|
2023-02-19 00:43:43 +01:00
|
|
|
using PrivaPub.Models.Data;
|
|
|
|
|
using PrivaPub.StaticServices;
|
2023-02-18 08:52:17 +01:00
|
|
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Text.Json;
|
|
|
|
|
|
2023-02-19 00:43:43 +01:00
|
|
|
namespace PrivaPub.Data
|
2023-02-18 08:52:17 +01:00
|
|
|
{
|
|
|
|
|
public static class InitDb
|
|
|
|
|
{
|
2026-10-17 02:56:57 +02:00
|
|
|
public static async Task Init(this DbEntities dbClient)
|
2023-02-18 08:52:17 +01:00
|
|
|
{
|
|
|
|
|
await SyncLanguages(dbClient);
|
|
|
|
|
await UpdateNewLanguages(dbClient);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static async Task SyncLanguages(DbEntities dbClient)
|
|
|
|
|
{
|
|
|
|
|
if (await dbClient.Languages.ExecuteAnyAsync()) return;
|
|
|
|
|
|
|
|
|
|
var languagesJson = await File.ReadAllTextAsync(Path.Combine(Directory.GetCurrentDirectory(), "Data", "languagesNative.json"), Encoding.UTF8);
|
|
|
|
|
var languagesRows = JsonSerializer.Deserialize<IEnumerable<LanguagesRow>>(languagesJson);
|
|
|
|
|
|
|
|
|
|
var languages = new List<Language>();
|
|
|
|
|
foreach (var languageRow in languagesRows ?? new LanguagesRow[]
|
|
|
|
|
{
|
|
|
|
|
})
|
|
|
|
|
languages.Add(new Language
|
|
|
|
|
{
|
|
|
|
|
EnglishName = languageRow.EnglishName,
|
|
|
|
|
NativeName = languageRow.NativeName,
|
|
|
|
|
International2Code = languageRow.International2Code
|
|
|
|
|
});
|
|
|
|
|
|
2026-10-01 08:05:56 +02:00
|
|
|
await DB.Default.SaveAsync(languages);
|
2023-02-18 08:52:17 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static async Task UpdateNewLanguages(DbEntities dbClient)
|
|
|
|
|
{
|
|
|
|
|
var bulgarianLanguage = await dbClient.Languages.Match(l => l.International2Code == "bg").ExecuteFirstAsync();
|
|
|
|
|
if (bulgarianLanguage.NativeName == "Български") return;
|
|
|
|
|
|
|
|
|
|
var languagesToUpdate = new Dictionary<string, string>()
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
"bg", "Български"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cs", "Česky"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"da", "Dansk"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"nl", "Nederlands"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"et", "Eesti"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"fi", "Suomalainen"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"el", "Ελληνική"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"hu", "Magyar"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"lv", "Latviešu"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"lt", "Lietuvių kalba"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"pl", "Polski"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"pt", "Português"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"ro", "Românesc"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"sk", "Slovenská"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"sl", "Slovenski"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"sv", "Svenska"
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
foreach (var languageToUpdate in languagesToUpdate)
|
|
|
|
|
{
|
|
|
|
|
var bgLang = await dbClient.Languages.Match(l => l.International2Code == languageToUpdate.Key).ExecuteFirstAsync();
|
|
|
|
|
bgLang.NativeName = languageToUpdate.Value;
|
2026-10-01 08:05:56 +02:00
|
|
|
await DB.Default.SaveAsync(bgLang);
|
2023-02-18 08:52:17 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|