add support for attach destUser in Query Params ...

This commit is contained in:
2025-08-11 17:18:56 +03:30
parent 219bb5ab84
commit b41c52b9ca
+104 -59
View File
@@ -1,72 +1,82 @@
using System.ComponentModel.DataAnnotations;
using AutoMapper.Mappers;
using RestSharp; using RestSharp;
using xCommons.Constants; using xCommons.Constants;
using xCommons.Extensions; using xCommons.Extensions;
using xModels.Dtos; using xModels.Dtos;
namespace xHttpService.Extensions { namespace xHttpService.Extensions
public static partial class RestSharpExtensions { {
public static partial class RestSharpExtensions
{
/// <summary> /// <summary>
/// Attach an instance of XQuery to a RestRequest object /// Attach an instance of XQuery to a RestRequest object
/// </summary> /// </summary>
/// <param name="source"></param> /// <param name="source"></param>
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
public static RestRequest AttachXQuery ( public static RestRequest AttachXQuery(
this RestRequest source, this RestRequest source,
XQuery query XQuery query
) { )
{
// //
if (query.IsNull ()) { if (query.IsNull())
{
return source; return source;
} }
// //
// ContainsDetail ... // ContainsDetail ...
// //
var containsDetailKey = System.Uri.EscapeDataString (nameof (query.ContainsDetail)); var containsDetailKey = System.Uri.EscapeDataString(nameof(query.ContainsDetail));
var containsDetailValue = query.ContainsDetail.AsHttpParamString (); var containsDetailValue = query.ContainsDetail.AsHttpParamString();
source.AddQueryParameter (containsDetailKey, containsDetailValue); source.AddQueryParameter(containsDetailKey, containsDetailValue);
// //
// IsAscending ... // IsAscending ...
var isAscendingKey = System.Uri.EscapeDataString (nameof (query.IsAscending)); var isAscendingKey = System.Uri.EscapeDataString(nameof(query.IsAscending));
var isAscendingValue = query.IsAscending.AsHttpParamString (); var isAscendingValue = query.IsAscending.AsHttpParamString();
source.AddQueryParameter (isAscendingKey, isAscendingValue); source.AddQueryParameter(isAscendingKey, isAscendingValue);
// //
// Filter ... // Filter ...
if (!query.Filter.IsNullOrEmpty ()) { if (!query.Filter.IsNullOrEmpty())
{
// //
var key = System.Uri.EscapeDataString (nameof (query.Filter)); var key = System.Uri.EscapeDataString(nameof(query.Filter));
var value = query.Filter.AsHttpParamString (); var value = query.Filter.AsHttpParamString();
source.AddQueryParameter (key, value); source.AddQueryParameter(key, value);
} }
// //
// SortBy ... // SortBy ...
if (!query.SortBy.IsNullOrEmpty ()) { if (!query.SortBy.IsNullOrEmpty())
{
// //
var key = System.Uri.EscapeDataString (nameof (query.SortBy)); var key = System.Uri.EscapeDataString(nameof(query.SortBy));
var value = query.SortBy.AsHttpParamString (); var value = query.SortBy.AsHttpParamString();
source.AddQueryParameter (key, value); source.AddQueryParameter(key, value);
} }
// //
// Page ... // Page ...
if (query.Page > 0) { if (query.Page > 0)
{
// //
var key = System.Uri.EscapeDataString (nameof (query.Page)); var key = System.Uri.EscapeDataString(nameof(query.Page));
var value = query.Page.AsHttpParamString (); var value = query.Page.AsHttpParamString();
source.AddQueryParameter (key, value); source.AddQueryParameter(key, value);
} }
// //
// PageSize ... // PageSize ...
if (query.PageSize > 0) { if (query.PageSize > 0)
{
// //
var key = System.Uri.EscapeDataString (nameof (query.PageSize)); var key = System.Uri.EscapeDataString(nameof(query.PageSize));
var value = query.PageSize.AsHttpParamString (); var value = query.PageSize.AsHttpParamString();
source.AddQueryParameter (key, value); source.AddQueryParameter(key, value);
} }
// //
@@ -79,65 +89,98 @@ namespace xHttpService.Extensions {
/// <param name="source"></param> /// <param name="source"></param>
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
public static RestRequest AttachXPageRequest ( public static RestRequest AttachXPageRequest(
this RestRequest source, this RestRequest source,
XPageRequest request XPageRequest request
) { )
{
// //
if (request.IsNull ()) { if (request.IsNull())
{
return source; return source;
} }
// //
// First ... // First ...
if (request.First.HasValue) { if (request.First.HasValue)
{
// //
var key = System.Uri.EscapeDataString (nameof (request.First)); var key = System.Uri.EscapeDataString(nameof(request.First));
var value = request.First.AsHttpParamString (); var value = request.First.AsHttpParamString();
source.AddQueryParameter (key, value); source.AddQueryParameter(key, value);
} }
// //
// Last ... // Last ...
if (request.Last.HasValue) { if (request.Last.HasValue)
{
// //
var key = System.Uri.EscapeDataString (nameof (request.Last)); var key = System.Uri.EscapeDataString(nameof(request.Last));
var value = request.Last.AsHttpParamString (); var value = request.Last.AsHttpParamString();
source.AddQueryParameter (key, value); source.AddQueryParameter(key, value);
} }
// //
// After ... // After ...
if (!request.After.IsNullOrEmpty ()) { if (!request.After.IsNullOrEmpty())
{
// //
var key = System.Uri.EscapeDataString (nameof (request.After)); var key = System.Uri.EscapeDataString(nameof(request.After));
var value = request.After.AsHttpParamString (); var value = request.After.AsHttpParamString();
source.AddQueryParameter (key, value); source.AddQueryParameter(key, value);
} }
// //
// Before ... // Before ...
if (!request.Before.IsNullOrEmpty ()) { if (!request.Before.IsNullOrEmpty())
{
// //
var key = System.Uri.EscapeDataString (nameof (request.Before)); var key = System.Uri.EscapeDataString(nameof(request.Before));
var value = request.Before.AsHttpParamString (); var value = request.Before.AsHttpParamString();
source.AddQueryParameter (key, value); source.AddQueryParameter(key, value);
} }
// //
// SortBy ... // SortBy ...
if (!request.SortBy.IsNullOrEmpty ()) { if (!request.SortBy.IsNullOrEmpty())
{
// //
var key = System.Uri.EscapeDataString (nameof (request.SortBy)); var key = System.Uri.EscapeDataString(nameof(request.SortBy));
var value = request.SortBy.AsHttpParamString (); var value = request.SortBy.AsHttpParamString();
source.AddQueryParameter (key, value); source.AddQueryParameter(key, value);
} }
// //
// DescendingSort ... // DescendingSort ...
var descendingSortKey = System.Uri.EscapeDataString (nameof (request.DescendingSort)); var descendingSortKey = System.Uri.EscapeDataString(nameof(request.DescendingSort));
var descendingSortValue = request.DescendingSort.AsHttpParamString (); var descendingSortValue = request.DescendingSort.AsHttpParamString();
source.AddQueryParameter (descendingSortKey, descendingSortValue); source.AddQueryParameter(descendingSortKey, descendingSortValue);
//
return source;
}
/// <summary>
/// Add Dest User to Query Strings ...
/// </summary>
/// <param name="source"></param>
/// <param name="destUser"></param>
/// <returns></returns>
public static RestRequest AttachDestUser(
this RestRequest source,
string destUser
)
{
//
if (destUser.IsNullOrEmpty())
{
return source;
}
//
var destUserKey = System.Uri.EscapeDataString(nameof(destUser));
var destUserValue = destUser.AsHttpParamString();
source.AddQueryParameter(destUserKey, destUserValue);
// //
return source; return source;
@@ -149,12 +192,13 @@ namespace xHttpService.Extensions {
/// <param name="source"></param> /// <param name="source"></param>
/// <param name="poweredByValue"></param> /// <param name="poweredByValue"></param>
/// <returns></returns> /// <returns></returns>
public static RestRequest AddXPoweredBy ( public static RestRequest AddXPoweredBy(
this RestRequest source, this RestRequest source,
string poweredByValue string poweredByValue
) { )
{
// //
source.AddHeader ( source.AddHeader(
XAuthorization.XPoweredBy, XAuthorization.XPoweredBy,
poweredByValue poweredByValue
); );
@@ -169,15 +213,16 @@ namespace xHttpService.Extensions {
/// <param name="source"></param> /// <param name="source"></param>
/// <param name="poweredByValue"></param> /// <param name="poweredByValue"></param>
/// <returns></returns> /// <returns></returns>
public static RestRequest AddXAccessToken ( public static RestRequest AddXAccessToken(
this RestRequest source, this RestRequest source,
string token string token
) { )
{
// //
token = $"{XAuthentication.BEARER} {token}"; token = $"{XAuthentication.BEARER} {token}";
// //
source.AddHeader ( source.AddHeader(
XAuthorization.Header, XAuthorization.Header,
token token
); );