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