コード例 #1
0
        public async Task <ShopVisibleOrders> GetOrdersToExportAdvancedAsync(ProcessingOptions processingOptions, AvailableExportTypes exportType, bool returnAddressesOnly, bool includeCustomerTokens, int ordersToReturn, int[] orderStatusOverride, int[] itemStatusOverride, int[] includeSupplierIds, int buyersRemorse = 60)
        {
            var orders = new ShopVisibleOrders();

            includeSupplierIds  = includeSupplierIds ?? new int[0];
            orderStatusOverride = orderStatusOverride ?? new int[0];
            itemStatusOverride  = itemStatusOverride ?? new int[0];
            var requestParameters = processingOptions.ToPipedStrings(exportType, buyersRemorse, includeSupplierIds, returnAddressesOnly, includeCustomerTokens, ordersToReturn, orderStatusOverride, itemStatusOverride);

            await ActionPolicies.GetAsync.Do(async() =>
            {
                var xmlnewOrders = await this._client.GetOrdersToExportAdvancedAsync(
                    this._credentials.ClientName,
                    this._credentials.Guid,
                    requestParameters
                    );

                var newOrders = XmlSerializeHelpers.Deserialize <ShopVisibleOrders>(xmlnewOrders.OuterXml);

                if (newOrders.Response.ResponseHasErrors && newOrders.Response.ResponseCode != "SUCCESS")
                {
                    throw new Exception(
                        string.Format(
                            "Sync Orders. Client: {0}, Parameters: ({1}) ErrorDescription: {2}", this._credentials.ClientName,
                            requestParameters, newOrders.Response.ResponseDescription));
                }

                orders.Orders.AddRange(newOrders.Orders);
            });

            return(orders);
        }