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#

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