using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Threading.Tasks; using Oqtane.Services; using Oqtane.Shared; namespace SZUAbsolventenverein.Module.PremiumArea.Services { public interface IPremiumAreaService { Task> GetPremiumAreasAsync(int ModuleId); Task GetPremiumAreaAsync(int PremiumAreaId, int ModuleId); Task AddPremiumAreaAsync(Models.PremiumArea PremiumArea); Task UpdatePremiumAreaAsync(Models.PremiumArea PremiumArea); Task DeletePremiumAreaAsync(int PremiumAreaId, int ModuleId); } public class PremiumAreaService : ServiceBase, IPremiumAreaService { public PremiumAreaService(HttpClient http, SiteState siteState) : base(http, siteState) { } private string Apiurl => CreateApiUrl("PremiumArea"); public async Task> GetPremiumAreasAsync(int ModuleId) { List PremiumAreas = await GetJsonAsync>(CreateAuthorizationPolicyUrl($"{Apiurl}?moduleid={ModuleId}", EntityNames.Module, ModuleId), Enumerable.Empty().ToList()); return PremiumAreas.OrderBy(item => item.Name).ToList(); } public async Task GetPremiumAreaAsync(int PremiumAreaId, int ModuleId) { return await GetJsonAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/{PremiumAreaId}/{ModuleId}", EntityNames.Module, ModuleId)); } public async Task AddPremiumAreaAsync(Models.PremiumArea PremiumArea) { return await PostJsonAsync(CreateAuthorizationPolicyUrl($"{Apiurl}", EntityNames.Module, PremiumArea.ModuleId), PremiumArea); } public async Task UpdatePremiumAreaAsync(Models.PremiumArea PremiumArea) { return await PutJsonAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/{PremiumArea.PremiumAreaId}", EntityNames.Module, PremiumArea.ModuleId), PremiumArea); } public async Task DeletePremiumAreaAsync(int PremiumAreaId, int ModuleId) { await DeleteAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/{PremiumAreaId}/{ModuleId}", EntityNames.Module, ModuleId)); } } }