public ResourceCollection query()

in src/main/java/com/microsoft/store/partnercenter/invoices/InvoiceCollection.java [156:210]


	public ResourceCollection<Invoice> query(IQuery query)
	{
		if (query == null)
		{
			throw new IllegalArgumentException("query can't be null");
		}

		if (query.getType() != QueryType.INDEXED && query.getType() != QueryType.SIMPLE)
		{
			throw new IllegalArgumentException("This type of query is not supported.");
		}

		Collection<KeyValuePair<String, String>> parameters = new ArrayList<KeyValuePair<String, String>>();

		if (query.getType() == QueryType.INDEXED)
		{
			parameters.add(
				new KeyValuePair<String, String>(
					PartnerService.getInstance().getConfiguration().getApis().get("GetInvoices").getParameters().get("Size"),
					String.valueOf(query.getPageSize())));

			parameters.add(
				new KeyValuePair<String, String>(
					PartnerService.getInstance().getConfiguration().getApis().get("GetInvoices").getParameters().get("Offset"),
					String.valueOf(query.getIndex())));      
		}

		if (query.getFilter() != null)
		{
			ObjectMapper mapper = new ObjectMapper();

			try
			{
				parameters.add(
					new KeyValuePair<String, String>(
						PartnerService.getInstance().getConfiguration().getApis().get("GetInvoices").getParameters().get("Filter"),
						URLEncoder.encode(mapper.writeValueAsString(query.getFilter()),
						"UTF-8")));            	
			}
			catch (UnsupportedEncodingException e)
			{
				throw new PartnerException("", null, PartnerErrorCategory.REQUEST_PARSING, e);
			}
			catch (JsonProcessingException e)
			{
				throw new PartnerException("", null, PartnerErrorCategory.REQUEST_PARSING, e);
			}
		}

		return this.getPartner().getServiceClient().get(
			this.getPartner(),
			new TypeReference<SeekBasedResourceCollection<Invoice>>(){}, 
			PartnerService.getInstance().getConfiguration().getApis().get("GetInvoices").getPath(),
			parameters);
	}