ebay GetOrders API с использованием OutputSelector и SortOrder — .Net SDK

Я использую ebay .Net SDK. Все работает нормально, кроме следующих требований:

  1. Использование OutputSelector для повышения производительности
  2. Невозможно использовать SortingOrder при отображении записей.
  3. Общий доход/сумма, проданная за указанный период времени, т. е. общая сумма по всем вызовам разбиения на страницы без циклического просмотра страниц и их агрегирования вручную.

Вот код, который я использую:

var apicall = new GetOrdersCall(context);
//apicall.ApiRequest.OutputSelector = new StringCollection(new String[] { "Order.OrderID", "Order.Total" });
apicall.ApiRequest.Pagination = new PaginationType
{
    EntriesPerPage = Util.RecordsPerPage(),
    PageNumber = int.Parse(Request.Form["pageNumber"])
};
var fltr = new TimeFilter(Convert.ToDateTime(Request.Form["dateFrom"] + "T00:00:00.000Z"), Convert.ToDateTime(Request.Form["dateTo"] + "T23:59:59.999Z"));
var statusCodeType = (OrderStatusCodeType)Enum.Parse(typeof(OrderStatusCodeType), Request.Form["statusCode"]);
var orders = apicall.GetOrders(fltr, TradingRoleCodeType.Seller, statusCodeType);

Пожалуйста, помогите мне, как использовать эти 3 функции.


person iMatoria    schedule 04.09.2013    source источник


Ответы (1)


После долгих усилий у меня получилось:

var request = new GetOrdersRequestType
{
    //OutputSelector = new StringCollection {"OrderID","Total"},
    CreateTimeFrom = Convert.ToDateTime(Request.Form["dateFrom"] + "T00:00:00.000Z"),
    CreateTimeTo = Convert.ToDateTime(Request.Form["dateTo"] + "T23:59:59.999Z"),
    OrderStatus = (OrderStatusCodeType)Enum.Parse(typeof(OrderStatusCodeType), Request.Form["statusCode"]),
    OrderRole = TradingRoleCodeType.Seller,
    Pagination = new PaginationType
        {
            EntriesPerPage = Util.RecordsPerPage(),
            PageNumber = int.Parse(Request.Form["pageNumber"])
        }
};

var apicall = new GetOrdersCall(context)
    {
        ApiRequest = request,
        OutputSelector =
            new string[]
                {
                    "OrderID", "Total", "PaidTime", "eBayPaymentStatus",
                    "PaymentMethod", "Title", "PageNumber", "PaginationResult.TotalNumberOfPages"
                }
    };

apicall.Execute();
var orders = apicall.ApiResponse.OrderArray;
person iMatoria    schedule 04.09.2013
comment
Я знаю, что это старо... но при использовании нумерации страниц. Если есть более 1 страницы результатов. Как получить следующую страницу? Вы должны сделать весь запрос снова? - person Glen Hong; 17.10.2018