using Oqtane.Models; using Oqtane.Services; using Oqtane.Shared; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Reflection; using System.Threading.Tasks; using SZUAbsolventenverein.Module.AdminModules.Models; namespace SZUAbsolventenverein.Module.AdminModules.Services { public interface IAdminModulesService { Task> GetAdminModulessAsync(int ModuleId); Task GetAdminModulesAsync(int AdminModulesId, int ModuleId); Task AddAdminModulesAsync(Models.AdminModules AdminModules); Task UpdateAdminModulesAsync(Models.AdminModules AdminModules); Task DeleteAdminModulesAsync(int AdminModulesId, int ModuleId); Task> GetRoles(int ModuleId); Task PostUsercountInRole(Models.EmailFields EmailFields); Task SendMassNotification(Models.EmailFields EmailFields); } public class AdminModulesService : ServiceBase, IAdminModulesService { public AdminModulesService(HttpClient http, SiteState siteState) : base(http, siteState) { } private string Apiurl => CreateApiUrl("AdminModules"); public async Task> GetAdminModulessAsync(int ModuleId) { List AdminModuless = await GetJsonAsync>(CreateAuthorizationPolicyUrl($"{Apiurl}?moduleid={ModuleId}", EntityNames.Module, ModuleId), Enumerable.Empty().ToList()); return AdminModuless.OrderBy(item => item.Name).ToList(); } public async Task GetAdminModulesAsync(int AdminModulesId, int ModuleId) { return await GetJsonAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/get/{AdminModulesId}/{ModuleId}", EntityNames.Module, ModuleId)); } public async Task AddAdminModulesAsync(Models.AdminModules AdminModules) { return await PostJsonAsync(CreateAuthorizationPolicyUrl($"{Apiurl}", EntityNames.Module, AdminModules.ModuleId), AdminModules); } public async Task UpdateAdminModulesAsync(Models.AdminModules AdminModules) { return await PutJsonAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/{AdminModules.AdminModulesId}", EntityNames.Module, AdminModules.ModuleId), AdminModules); } public async Task DeleteAdminModulesAsync(int AdminModulesId, int ModuleId) { await DeleteAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/{AdminModulesId}/{ModuleId}", EntityNames.Module, ModuleId)); } public async Task> GetRoles(int ModuleId) { return await GetJsonAsync>(CreateAuthorizationPolicyUrl($"{Apiurl}/roles?moduleid={ModuleId}", EntityNames.Module, ModuleId)); } public async Task PostUsercountInRole(EmailFields EmailFields) { return await PostJsonAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/roles/{EmailFields.AdminModulesId}", EntityNames.Module, EmailFields.ModuleId), EmailFields); } public async Task SendMassNotification(EmailFields EmailFields) { return await PutJsonAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/send/{EmailFields.AdminModulesId}", EntityNames.Module, EmailFields.ModuleId), EmailFields); } } }