Files
xIdentityService/Partial/XIdentityProvider+Search.cs
2025-12-23 22:47:20 +03:30

57 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using xHttpService.Constants;
using xHttpService.Extensions;
using xIdentityModels.Dtos;
using xIdentityModels.Models;
using xIdentityService.Constants;
using xModels.Dtos;
namespace xIdentityService.Providers
{
public partial class XIdentityProvider
{
//
#region Actions ...
/// <summary>
/// Query Open To Search User Profiles ...
/// </summary>
/// <param name="tokens">requested user's identifiers</param>
/// <param name="query">how to filter results based on <see>XQuery</see> structure</param>
/// <returns>an instance of <see>XQueryResult</see> of <see>XUserProfileDto</see></returns>
public async Task<XQueryResult<XUserProfileDto>> QueryOpenToSearchUsers(
XTokenResponse tokens,
XQuery query
)
{
//
// Validate Args ...
await validationProvider
.GroupValidationBuilder()
.AddNotNull(tokens, query)
.AddNotEmpty(tokens.AccessToken)
.ValidateGroupAsync();
//
var client = GetRestClient(tokens);
//
var request = GetRestRequet(XApiAccountEndpoint.QueryOpenToSearchProfiles);
//
// Attach XQuery to Request ...
request = request.AttachXQuery(query);
//
var response = await RunRestRequest<XQueryResult<XUserProfileDto>>(
client,
request,
XHttpMethod.GET
);
return response;
}
#endregion
}
}