using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; using Oqtane.Documentation; using Oqtane.Models; using Oqtane.Shared; namespace Oqtane.Services { /// /// Service to manage entries /// public interface ILanguageService { /// /// Returns a list of all available languages for the given /// /// /// Task> GetLanguagesAsync(int siteId); /// /// Returns a list of all available languages for the given and package /// /// /// /// Task> GetLanguagesAsync(int siteId, string packageName); /// /// Returns the given language /// /// /// Task GetLanguageAsync(int languageId); /// /// Adds the given language /// /// /// Task AddLanguageAsync(Language language); /// /// Edits the given language /// /// /// Task EditLanguageAsync(Language language); /// /// Deletes the given language /// /// /// Task DeleteLanguageAsync(int languageId); } [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) { return await GetLanguagesAsync(siteId, ""); } public async Task> GetLanguagesAsync(int siteId, string packageName) { return await GetJsonAsync>($"{Apiurl}?siteid={siteId}&packagename={packageName}"); } public async Task GetLanguageAsync(int languageId) { return await GetJsonAsync($"{Apiurl}/{languageId}"); } public async Task AddLanguageAsync(Language language) { return await PostJsonAsync(Apiurl, language); } public async Task EditLanguageAsync(Language language) { await PutJsonAsync(Apiurl, language); } public async Task DeleteLanguageAsync(int languageId) { await DeleteAsync($"{Apiurl}/{languageId}"); } } }