using RestSharp; using xCommons.Constants; using xCommons.Extensions; using xModels.Dtos; namespace xHttpService.Extensions { public static partial class RestSharpExtensions { /// /// Attach an instance of XQuery to a RestRequest object /// /// /// /// public static RestRequest AttachXQuery ( this RestRequest source, XQuery query ) { // if (query.IsNull ()) { return source; } // // ContainsDetail ... // 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); // // Filter ... if (!query.Filter.IsNullOrEmpty ()) { // var key = System.Uri.EscapeDataString (nameof (query.Filter)); var value = query.Filter.AsHttpParamString (); source.AddQueryParameter (key, value); } // // SortBy ... if (!query.SortBy.IsNullOrEmpty ()) { // var key = System.Uri.EscapeDataString (nameof (query.SortBy)); var value = query.SortBy.AsHttpParamString (); source.AddQueryParameter (key, value); } // // Page ... if (query.Page > 0) { // var key = System.Uri.EscapeDataString (nameof (query.Page)); var value = query.Page.AsHttpParamString (); source.AddQueryParameter (key, value); } // // PageSize ... if (query.PageSize > 0) { // var key = System.Uri.EscapeDataString (nameof (query.PageSize)); var value = query.PageSize.AsHttpParamString (); source.AddQueryParameter (key, value); } // return source; } /// /// Attach an instance of XPageRequest to a RestRequest object /// /// /// /// public static RestRequest AttachXPageRequest ( this RestRequest source, XPageRequest request ) { // if (request.IsNull ()) { return source; } // // First ... if (request.First.HasValue) { // var key = System.Uri.EscapeDataString (nameof (request.First)); var value = request.First.AsHttpParamString (); source.AddQueryParameter (key, value); } // // Last ... if (request.Last.HasValue) { // var key = System.Uri.EscapeDataString (nameof (request.Last)); var value = request.Last.AsHttpParamString (); source.AddQueryParameter (key, value); } // // After ... if (!request.After.IsNullOrEmpty ()) { // var key = System.Uri.EscapeDataString (nameof (request.After)); var value = request.After.AsHttpParamString (); source.AddQueryParameter (key, value); } // // Before ... if (!request.Before.IsNullOrEmpty ()) { // var key = System.Uri.EscapeDataString (nameof (request.Before)); var value = request.Before.AsHttpParamString (); source.AddQueryParameter (key, value); } // // SortBy ... if (!request.SortBy.IsNullOrEmpty ()) { // 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); // return source; } /// /// Add XPoweredBy Header to specific RestRequest Headers ... /// /// /// /// public static RestRequest AddXPoweredBy ( this RestRequest source, string poweredByValue ) { // source.AddHeader ( XAuthorization.XPoweredBy, poweredByValue ); // return source; } /// /// Add XAccessToken Header to specific RestRequest Headers ... /// /// /// /// public static RestRequest AddXAccessToken ( this RestRequest source, string token ) { // token = $"{XAuthentication.BEARER} {token}"; // source.AddHeader ( XAuthorization.Header, token ); // return source; } } }