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 { /// /// 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; } /// /// 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; } /// /// 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; } } }