using PrivaPub.Models.Data; using PrivaPub.StaticServices; namespace PrivaPub.Services.ClientToServer.Public { public class DataService : IDataService { readonly DbEntities DbEntities; readonly AppConfigurationService AppConfigurationService; public DataService(DbEntities dbCollections, AppConfigurationService appConfigurationService) { DbEntities = dbCollections; AppConfigurationService = appConfigurationService; } public string GetCurrentVersion() => AppConfigurationService.AppConfiguration.Version; public async Task> GetLanguages(CancellationToken cancellationToken) { return (await DbEntities.Languages .Match(l => AppConfigurationService.AppConfiguration.SupportedLanguages.Contains(l.International2Code)) .ExecuteAsync(cancellationToken)).OrderBy(l => l.NativeName).ToArray(); } public async Task IsValidLanguageId(string languageId) { var anyLanguageWithId = await DbEntities.Languages.Match(l => l.ID == languageId).ExecuteAnyAsync(); if (!anyLanguageWithId) return false; var language2Code = (await DbEntities.Languages .Match(l => l.ID == languageId).ExecuteFirstAsync())?.International2Code; return AppConfigurationService.AppConfiguration.SupportedLanguages.Contains(language2Code); } } }