Ingenieur Anträge: UI und Services
This commit is contained in:
75
Client/Services/EngineerApplicationService.cs
Normal file
75
Client/Services/EngineerApplicationService.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Oqtane.Services;
|
||||
using Oqtane.Shared;
|
||||
using SZUAbsolventenverein.Module.PremiumArea.Models;
|
||||
|
||||
namespace SZUAbsolventenverein.Module.PremiumArea.Services
|
||||
{
|
||||
public interface IEngineerApplicationService
|
||||
{
|
||||
Task<List<EngineerApplication>> GetApplicationsAsync(int ModuleId);
|
||||
Task<List<EngineerApplication>> GetApplicationsAsync(int ModuleId, string status);
|
||||
Task<EngineerApplication> GetApplicationAsync(int ApplicationId, int ModuleId);
|
||||
Task<EngineerApplication> AddApplicationAsync(EngineerApplication Application);
|
||||
Task<EngineerApplication> UpdateApplicationAsync(EngineerApplication Application);
|
||||
Task DeleteApplicationAsync(int ApplicationId, int ModuleId);
|
||||
Task ApproveApplicationAsync(int ApplicationId, int ModuleId);
|
||||
Task RejectApplicationAsync(int ApplicationId, int ModuleId, string Reason);
|
||||
Task ReportApplicationAsync(int ApplicationId, int ModuleId, string Reason);
|
||||
}
|
||||
|
||||
public class EngineerApplicationService : ServiceBase, IEngineerApplicationService
|
||||
{
|
||||
public EngineerApplicationService(HttpClient http, SiteState siteState) : base(http, siteState) { }
|
||||
|
||||
private string Apiurl => CreateApiUrl("EngineerApplication");
|
||||
|
||||
public async Task<List<EngineerApplication>> GetApplicationsAsync(int ModuleId)
|
||||
{
|
||||
return await GetJsonAsync<List<EngineerApplication>>(CreateAuthorizationPolicyUrl($"{Apiurl}?moduleid={ModuleId}", EntityNames.Module, ModuleId));
|
||||
}
|
||||
|
||||
public async Task<List<EngineerApplication>> GetApplicationsAsync(int ModuleId, string status)
|
||||
{
|
||||
return await GetJsonAsync<List<EngineerApplication>>(CreateAuthorizationPolicyUrl($"{Apiurl}/status/{status}?moduleid={ModuleId}", EntityNames.Module, ModuleId));
|
||||
}
|
||||
|
||||
public async Task<EngineerApplication> GetApplicationAsync(int ApplicationId, int ModuleId)
|
||||
{
|
||||
return await GetJsonAsync<EngineerApplication>(CreateAuthorizationPolicyUrl($"{Apiurl}/{ApplicationId}?moduleid={ModuleId}", EntityNames.Module, ModuleId));
|
||||
}
|
||||
|
||||
public async Task<EngineerApplication> AddApplicationAsync(EngineerApplication Application)
|
||||
{
|
||||
return await PostJsonAsync<EngineerApplication>(CreateAuthorizationPolicyUrl($"{Apiurl}", EntityNames.Module, Application.ModuleId), Application);
|
||||
}
|
||||
|
||||
public async Task<EngineerApplication> UpdateApplicationAsync(EngineerApplication Application)
|
||||
{
|
||||
return await PutJsonAsync<EngineerApplication>(CreateAuthorizationPolicyUrl($"{Apiurl}/{Application.ApplicationId}", EntityNames.Module, Application.ModuleId), Application);
|
||||
}
|
||||
|
||||
public async Task DeleteApplicationAsync(int ApplicationId, int ModuleId)
|
||||
{
|
||||
await DeleteAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/{ApplicationId}?moduleid={ModuleId}", EntityNames.Module, ModuleId));
|
||||
}
|
||||
|
||||
public async Task ApproveApplicationAsync(int ApplicationId, int ModuleId)
|
||||
{
|
||||
await PostAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/approve/{ApplicationId}?moduleid={ModuleId}", EntityNames.Module, ModuleId));
|
||||
}
|
||||
|
||||
public async Task RejectApplicationAsync(int ApplicationId, int ModuleId, string Reason)
|
||||
{
|
||||
await PostAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/reject/{ApplicationId}?moduleid={ModuleId}&reason={System.Net.WebUtility.UrlEncode(Reason)}", EntityNames.Module, ModuleId));
|
||||
}
|
||||
|
||||
public async Task ReportApplicationAsync(int ApplicationId, int ModuleId, string Reason)
|
||||
{
|
||||
await PostJsonAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/report/{ApplicationId}?moduleid={ModuleId}", EntityNames.Module, ModuleId), Reason);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user