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> 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> SearchUsersAsync(string query, int moduleId) { return await GetJsonAsync>(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)); } } }