You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
3.0 KiB
C#
69 lines
3.0 KiB
C#
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Amazon.SellingPartnerApiSDK.AmazonSpApiSDK.Models.ShippingV2;
|
|
using Amazon.SellingPartnerApiSDK.Misc;
|
|
|
|
namespace Amazon.SellingPartnerApiSDK.Services
|
|
{
|
|
public class ShippingV2Service : RequestService
|
|
{
|
|
public ShippingV2Service(AmazonCredential amazonCredential) : base(amazonCredential)
|
|
{
|
|
}
|
|
|
|
public GetRatesResult GetRates(GetRatesRequest getRatesRequest) =>
|
|
Task.Run(() => GetRatesAsync(getRatesRequest)).ConfigureAwait(false).GetAwaiter().GetResult();
|
|
|
|
public async Task<GetRatesResult> GetRatesAsync(GetRatesRequest getRatesRequest,
|
|
CancellationToken cancellationToken = default)
|
|
{
|
|
await CreateAuthorizedRequestAsync(ShippingApiV2Urls.GetRates, RestSharp.Method.Post,
|
|
postJsonObj: getRatesRequest, cancellationToken: cancellationToken);
|
|
|
|
var response =
|
|
await ExecuteRequestAsync<GetRatesResponse>(RateLimitType.ShippingV2_GetRates, cancellationToken);
|
|
|
|
if (response != null && response.Payload != null)
|
|
return response.Payload;
|
|
|
|
return null;
|
|
}
|
|
|
|
public PurchaseShipmentResult PurchaseShipment(PurchaseShipmentRequest purchaseShipmentRequest) =>
|
|
Task.Run(() => PurchaseShipmentAsync(purchaseShipmentRequest)).ConfigureAwait(false).GetAwaiter()
|
|
.GetResult();
|
|
|
|
public async Task<PurchaseShipmentResult> PurchaseShipmentAsync(PurchaseShipmentRequest purchaseShipmentRequest,
|
|
CancellationToken cancellationToken = default)
|
|
{
|
|
await CreateAuthorizedRequestAsync(ShippingApiV2Urls.PurchaseShipment, RestSharp.Method.Post,
|
|
postJsonObj: purchaseShipmentRequest, cancellationToken: cancellationToken);
|
|
var response =
|
|
await ExecuteRequestAsync<PurchaseShipmentResponse>(RateLimitType.ShippingV2_PurchaseShipment,
|
|
cancellationToken);
|
|
if (response != null && response.Payload != null)
|
|
return response.Payload;
|
|
return null;
|
|
}
|
|
|
|
public OneClickShipmentResult OneClickShipment(OneClickShipmentRequest oneClickShipmentRequest) =>
|
|
Task.Run(() => OneClickShipmentAsync(oneClickShipmentRequest)).ConfigureAwait(false).GetAwaiter()
|
|
.GetResult();
|
|
|
|
public async Task<OneClickShipmentResult> OneClickShipmentAsync(OneClickShipmentRequest oneClickShipmentRequest,
|
|
CancellationToken cancellationToken = default)
|
|
{
|
|
await CreateAuthorizedRequestAsync(ShippingApiV2Urls.OneClickShipment, RestSharp.Method.Post,
|
|
postJsonObj: oneClickShipmentRequest, cancellationToken: cancellationToken);
|
|
|
|
var response =
|
|
await ExecuteRequestAsync<OneClickShipmentResponse>(RateLimitType.ShippingV2_GetRates,
|
|
cancellationToken);
|
|
|
|
if (response != null && response.Payload != null)
|
|
return response.Payload;
|
|
|
|
return null;
|
|
}
|
|
}
|
|
} |