New: User Search and User-Contact UI and Service

This commit is contained in:
2026-02-11 10:57:03 +01:00
parent 51b8f1c916
commit f80e9d00ee
6 changed files with 259 additions and 1 deletions

View File

@@ -0,0 +1,32 @@
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
using Oqtane.Models;
using Oqtane.Services;
using Oqtane.Shared;
namespace SZUAbsolventenverein.Module.PremiumArea.Services
{
public interface IUserContactService
{
Task<List<User>> SearchUsersAsync(string query, int moduleId);
Task SendMessageAsync(int recipientUserId, string message, int moduleId);
}
public class UserContactService : ServiceBase, IUserContactService
{
public UserContactService(HttpClient http, SiteState siteState) : base(http, siteState) { }
private string Apiurl => CreateApiUrl("UserContact");
public async Task<List<User>> SearchUsersAsync(string query, int moduleId)
{
return await GetJsonAsync<List<User>>(CreateAuthorizationPolicyUrl($"{Apiurl}/search/{query}?moduleid={moduleId}", EntityNames.Module, moduleId));
}
public async Task SendMessageAsync(int recipientUserId, string message, int moduleId)
{
await PostAsync(CreateAuthorizationPolicyUrl($"{Apiurl}/send?recipientId={recipientUserId}&moduleid={moduleId}&message={System.Net.WebUtility.UrlEncode(message)}", EntityNames.Module, moduleId));
}
}
}