Initial Commit ...
This commit is contained in:
@@ -0,0 +1,189 @@
|
||||
using RestSharp;
|
||||
using xCommons.Constants;
|
||||
using xCommons.Extensions;
|
||||
using xModels.Dtos;
|
||||
|
||||
namespace xHttpService.Extensions {
|
||||
public static partial class RestSharpExtensions {
|
||||
/// <summary>
|
||||
/// Attach an instance of XQuery to a RestRequest object
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <param name="query"></param>
|
||||
/// <returns></returns>
|
||||
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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attach an instance of XPageRequest to a RestRequest object
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add XPoweredBy Header to specific RestRequest Headers ...
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <param name="poweredByValue"></param>
|
||||
/// <returns></returns>
|
||||
public static RestRequest AddXPoweredBy (
|
||||
this RestRequest source,
|
||||
string poweredByValue
|
||||
) {
|
||||
//
|
||||
source.AddHeader (
|
||||
XAuthorization.XPoweredBy,
|
||||
poweredByValue
|
||||
);
|
||||
|
||||
//
|
||||
return source;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add XAccessToken Header to specific RestRequest Headers ...
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <param name="poweredByValue"></param>
|
||||
/// <returns></returns>
|
||||
public static RestRequest AddXAccessToken (
|
||||
this RestRequest source,
|
||||
string token
|
||||
) {
|
||||
//
|
||||
token = $"{XAuthentication.BEARER} {token}";
|
||||
|
||||
//
|
||||
source.AddHeader (
|
||||
XAuthorization.Header,
|
||||
token
|
||||
);
|
||||
|
||||
//
|
||||
return source;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user