using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Threading.Tasks; using Oqtane.Documentation; using Oqtane.Models; using Oqtane.Shared; namespace Oqtane.Services { [PrivateApi("Don't show in the documentation, as everything should use the Interface")] public class LanguageService : ServiceBase, ILanguageService { public LanguageService(HttpClient http, SiteState siteState) : base(http, siteState) { } private string Apiurl => CreateApiUrl("Language"); public async Task> GetLanguagesAsync(int siteId) { var languages = await GetJsonAsync>($"{Apiurl}?siteid={siteId}"); return languages?.OrderBy(l => l.Name).ToList() ?? Enumerable.Empty().ToList(); } public async Task GetLanguageAsync(int languageId) => await GetJsonAsync($"{Apiurl}/{languageId}"); public async Task AddLanguageAsync(Language language) => await PostJsonAsync(Apiurl, language); public async Task DeleteLanguageAsync(int languageId) => await DeleteAsync($"{Apiurl}/{languageId}"); } }