using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Threading.Tasks; using Oqtane.Services; using Oqtane.Shared; namespace Oqtane.Application.Services { public interface IMyModuleService { Task> GetMyModulesAsync(int ModuleId); Task GetMyModuleAsync(int MyModuleId, int ModuleId); Task AddMyModuleAsync(Models.MyModule MyModule); Task UpdateMyModuleAsync(Models.MyModule MyModule); Task DeleteMyModuleAsync(int MyModuleId, int ModuleId); } public class MyModuleService : ServiceBase, IMyModuleService { public MyModuleService(HttpClient http, SiteState siteState) : base(http, siteState) { } private string Apiurl => CreateApiUrl("MyModule"); public async Task> GetMyModulesAsync(int ModuleId) { List Tasks = await GetJsonAsync>(CreateAuthorizationPolicyUrl($"{Apiurl}?moduleid={ModuleId}", EntityNames.Module, ModuleId), Enumerable.Empty().ToList()); return Tasks.OrderBy(item => item.Name).ToList(); } public async Task GetMyModuleAsync(int MyModuleId, int ModuleId) { return await GetJsonAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/{MyModuleId}/{ModuleId}", EntityNames.Module, ModuleId)); } public async Task AddMyModuleAsync(Models.MyModule MyModule) { return await PostJsonAsync(CreateAuthorizationPolicyUrl($"{Apiurl}", EntityNames.Module, MyModule.ModuleId), MyModule); } public async Task UpdateMyModuleAsync(Models.MyModule MyModule) { return await PutJsonAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/{MyModule.MyModuleId}", EntityNames.Module, MyModule.ModuleId), MyModule); } public async Task DeleteMyModuleAsync(int MyModuleId, int ModuleId) { await DeleteAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/{MyModuleId}/{ModuleId}", EntityNames.Module, ModuleId)); } } }