From 3059e8c763d87740f38262cf5f3896e0afffdb50 Mon Sep 17 00:00:00 2001 From: hishamco Date: Sun, 10 Jan 2021 20:17:35 +0300 Subject: [PATCH] Add language service --- Oqtane.Client/Program.cs | 1 + .../Services/Interfaces/ILanguageService.cs | 17 +++++++++ Oqtane.Client/Services/LanguageService.cs | 38 +++++++++++++++++++ Oqtane.Server/Startup.cs | 1 + 4 files changed, 57 insertions(+) create mode 100644 Oqtane.Client/Services/Interfaces/ILanguageService.cs create mode 100644 Oqtane.Client/Services/LanguageService.cs diff --git a/Oqtane.Client/Program.cs b/Oqtane.Client/Program.cs index 4c2d1201..558b8290 100644 --- a/Oqtane.Client/Program.cs +++ b/Oqtane.Client/Program.cs @@ -67,6 +67,7 @@ namespace Oqtane.Client builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); + builder.Services.AddScoped(); await LoadClientAssemblies(httpClient); diff --git a/Oqtane.Client/Services/Interfaces/ILanguageService.cs b/Oqtane.Client/Services/Interfaces/ILanguageService.cs new file mode 100644 index 00000000..82fbcc78 --- /dev/null +++ b/Oqtane.Client/Services/Interfaces/ILanguageService.cs @@ -0,0 +1,17 @@ +using Oqtane.Models; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Oqtane.Services +{ + public interface ILanguageService + { + Task> GetLanguagesAsync(int siteId); + + Task GetLanguageAsync(int languageId); + + Task AddLanguageAsync(Language language); + + Task DeleteLanguageAsync(int languageId); + } +} diff --git a/Oqtane.Client/Services/LanguageService.cs b/Oqtane.Client/Services/LanguageService.cs new file mode 100644 index 00000000..432a2312 --- /dev/null +++ b/Oqtane.Client/Services/LanguageService.cs @@ -0,0 +1,38 @@ +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Threading.Tasks; +using Oqtane.Models; +using Oqtane.Shared; + +namespace Oqtane.Services +{ + public class LanguageService : ServiceBase, ILanguageService + { + + private readonly SiteState _siteState; + + public LanguageService(HttpClient http, SiteState siteState) : base(http) + { + _siteState = siteState; + } + + private string Apiurl => CreateApiUrl(_siteState.Alias, "Language"); + + public async Task> GetLanguagesAsync(int siteId) + { + var languages = await GetJsonAsync>($"{Apiurl}?siteid={siteId}"); + + return languages.OrderBy(l => l.Name).ToList(); + } + + public async Task GetLanguageAsync(int languageId) + => await GetJsonAsync($"{Apiurl}/{languageId}"); + + public async Task AddRoleAsync(Language language) + => await PostJsonAsync(Apiurl, language); + + public async Task DeleteLanguageAsync(int languageId) + => await DeleteAsync($"{Apiurl}/{languageId}"); + } +} diff --git a/Oqtane.Server/Startup.cs b/Oqtane.Server/Startup.cs index b4e9569d..0353bc03 100644 --- a/Oqtane.Server/Startup.cs +++ b/Oqtane.Server/Startup.cs @@ -128,6 +128,7 @@ namespace Oqtane services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); services.AddSingleton();