From b41c52b9ca35011dda74eee9d0a59a6fc19a62a5 Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Mon, 11 Aug 2025 17:18:56 +0330 Subject: [PATCH] add support for attach destUser in Query Params ... --- Extensions/RestSharpExtensions.cs | 163 +++++++++++++++++++----------- 1 file changed, 104 insertions(+), 59 deletions(-) diff --git a/Extensions/RestSharpExtensions.cs b/Extensions/RestSharpExtensions.cs index 5d7eab5..7639888 100644 --- a/Extensions/RestSharpExtensions.cs +++ b/Extensions/RestSharpExtensions.cs @@ -1,72 +1,82 @@ +using System.ComponentModel.DataAnnotations; +using AutoMapper.Mappers; using RestSharp; using xCommons.Constants; using xCommons.Extensions; using xModels.Dtos; -namespace xHttpService.Extensions { - public static partial class RestSharpExtensions { +namespace xHttpService.Extensions +{ + public static partial class RestSharpExtensions + { /// /// Attach an instance of XQuery to a RestRequest object /// /// /// /// - public static RestRequest AttachXQuery ( + public static RestRequest AttachXQuery( this RestRequest source, XQuery query - ) { + ) + { // - if (query.IsNull ()) { + if (query.IsNull()) + { return source; } // // ContainsDetail ... // - var containsDetailKey = System.Uri.EscapeDataString (nameof (query.ContainsDetail)); - var containsDetailValue = query.ContainsDetail.AsHttpParamString (); - source.AddQueryParameter (containsDetailKey, containsDetailValue); + var containsDetailKey = System.Uri.EscapeDataString(nameof(query.ContainsDetail)); + var containsDetailValue = query.ContainsDetail.AsHttpParamString(); + source.AddQueryParameter(containsDetailKey, containsDetailValue); // // IsAscending ... - var isAscendingKey = System.Uri.EscapeDataString (nameof (query.IsAscending)); - var isAscendingValue = query.IsAscending.AsHttpParamString (); - source.AddQueryParameter (isAscendingKey, isAscendingValue); + var isAscendingKey = System.Uri.EscapeDataString(nameof(query.IsAscending)); + var isAscendingValue = query.IsAscending.AsHttpParamString(); + source.AddQueryParameter(isAscendingKey, isAscendingValue); // // Filter ... - if (!query.Filter.IsNullOrEmpty ()) { + if (!query.Filter.IsNullOrEmpty()) + { // - var key = System.Uri.EscapeDataString (nameof (query.Filter)); - var value = query.Filter.AsHttpParamString (); - source.AddQueryParameter (key, value); + var key = System.Uri.EscapeDataString(nameof(query.Filter)); + var value = query.Filter.AsHttpParamString(); + source.AddQueryParameter(key, value); } // // SortBy ... - if (!query.SortBy.IsNullOrEmpty ()) { + if (!query.SortBy.IsNullOrEmpty()) + { // - var key = System.Uri.EscapeDataString (nameof (query.SortBy)); - var value = query.SortBy.AsHttpParamString (); - source.AddQueryParameter (key, value); + var key = System.Uri.EscapeDataString(nameof(query.SortBy)); + var value = query.SortBy.AsHttpParamString(); + source.AddQueryParameter(key, value); } // // Page ... - if (query.Page > 0) { + if (query.Page > 0) + { // - var key = System.Uri.EscapeDataString (nameof (query.Page)); - var value = query.Page.AsHttpParamString (); - source.AddQueryParameter (key, value); + var key = System.Uri.EscapeDataString(nameof(query.Page)); + var value = query.Page.AsHttpParamString(); + source.AddQueryParameter(key, value); } // // PageSize ... - if (query.PageSize > 0) { + if (query.PageSize > 0) + { // - var key = System.Uri.EscapeDataString (nameof (query.PageSize)); - var value = query.PageSize.AsHttpParamString (); - source.AddQueryParameter (key, value); + var key = System.Uri.EscapeDataString(nameof(query.PageSize)); + var value = query.PageSize.AsHttpParamString(); + source.AddQueryParameter(key, value); } // @@ -79,65 +89,98 @@ namespace xHttpService.Extensions { /// /// /// - public static RestRequest AttachXPageRequest ( + public static RestRequest AttachXPageRequest( this RestRequest source, XPageRequest request - ) { + ) + { // - if (request.IsNull ()) { + if (request.IsNull()) + { return source; } // // First ... - if (request.First.HasValue) { + if (request.First.HasValue) + { // - var key = System.Uri.EscapeDataString (nameof (request.First)); - var value = request.First.AsHttpParamString (); - source.AddQueryParameter (key, value); + var key = System.Uri.EscapeDataString(nameof(request.First)); + var value = request.First.AsHttpParamString(); + source.AddQueryParameter(key, value); } // // Last ... - if (request.Last.HasValue) { + if (request.Last.HasValue) + { // - var key = System.Uri.EscapeDataString (nameof (request.Last)); - var value = request.Last.AsHttpParamString (); - source.AddQueryParameter (key, value); + var key = System.Uri.EscapeDataString(nameof(request.Last)); + var value = request.Last.AsHttpParamString(); + source.AddQueryParameter(key, value); } // // After ... - if (!request.After.IsNullOrEmpty ()) { + if (!request.After.IsNullOrEmpty()) + { // - var key = System.Uri.EscapeDataString (nameof (request.After)); - var value = request.After.AsHttpParamString (); - source.AddQueryParameter (key, value); + var key = System.Uri.EscapeDataString(nameof(request.After)); + var value = request.After.AsHttpParamString(); + source.AddQueryParameter(key, value); } // // Before ... - if (!request.Before.IsNullOrEmpty ()) { + if (!request.Before.IsNullOrEmpty()) + { // - var key = System.Uri.EscapeDataString (nameof (request.Before)); - var value = request.Before.AsHttpParamString (); - source.AddQueryParameter (key, value); + var key = System.Uri.EscapeDataString(nameof(request.Before)); + var value = request.Before.AsHttpParamString(); + source.AddQueryParameter(key, value); } // // SortBy ... - if (!request.SortBy.IsNullOrEmpty ()) { + if (!request.SortBy.IsNullOrEmpty()) + { // - var key = System.Uri.EscapeDataString (nameof (request.SortBy)); - var value = request.SortBy.AsHttpParamString (); - source.AddQueryParameter (key, value); + var key = System.Uri.EscapeDataString(nameof(request.SortBy)); + var value = request.SortBy.AsHttpParamString(); + source.AddQueryParameter(key, value); } // // DescendingSort ... - var descendingSortKey = System.Uri.EscapeDataString (nameof (request.DescendingSort)); - var descendingSortValue = request.DescendingSort.AsHttpParamString (); - source.AddQueryParameter (descendingSortKey, descendingSortValue); + var descendingSortKey = System.Uri.EscapeDataString(nameof(request.DescendingSort)); + var descendingSortValue = request.DescendingSort.AsHttpParamString(); + source.AddQueryParameter(descendingSortKey, descendingSortValue); + + // + return source; + } + + /// + /// Add Dest User to Query Strings ... + /// + /// + /// + /// + 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; @@ -149,12 +192,13 @@ namespace xHttpService.Extensions { /// /// /// - public static RestRequest AddXPoweredBy ( + public static RestRequest AddXPoweredBy( this RestRequest source, string poweredByValue - ) { + ) + { // - source.AddHeader ( + source.AddHeader( XAuthorization.XPoweredBy, poweredByValue ); @@ -169,15 +213,16 @@ namespace xHttpService.Extensions { /// /// /// - public static RestRequest AddXAccessToken ( + public static RestRequest AddXAccessToken( this RestRequest source, string token - ) { + ) + { // token = $"{XAuthentication.BEARER} {token}"; // - source.AddHeader ( + source.AddHeader( XAuthorization.Header, token );