/// <summary> /// API call example for SearchInvoices /// </summary> /// <param name="context"></param> private void SearchInvoices(HttpContext context) { // Collect input params String merchantEmail = context.Request.Params["merchantEmail"]; int page = Int32.Parse(context.Request.Params["page"]); int pageSize = Int32.Parse(context.Request.Params["pageSize"]); SearchParametersType searchParams = new SearchParametersType(); SearchInvoicesRequest request = new SearchInvoicesRequest( new RequestEnvelope(ERROR_LANGUAGE), merchantEmail, searchParams, page, pageSize); if (context.Request.Params["email"] != "") { searchParams.email = context.Request.Params["email"]; } if (context.Request.Params["recipientName"] != "") { searchParams.recipientName = context.Request.Params["recipientName"]; } if (context.Request.Params["businessName"] != "") { searchParams.businessName = context.Request.Params["businessName"]; } if (context.Request.Params["invoiceNumber"] != "") { searchParams.invoiceNumber = context.Request.Params["invoiceNumber"]; } if (context.Request.Params["status0"] != "") { // You can add upto 10 status to do a 'OR' search on multiple status types searchParams.status.Add( (StatusType)Enum.Parse(typeof(StatusType), context.Request.Params["status0"])); } if (context.Request.Params["status1"] != "") { // You can add upto 10 status to do a 'OR' search on multiple status types searchParams.status.Add( (StatusType)Enum.Parse(typeof(StatusType), context.Request.Params["status1"])); } if (context.Request.Params["status2"] != "") { // You can add upto 10 status to do a 'OR' search on multiple status types searchParams.status.Add( (StatusType)Enum.Parse(typeof(StatusType), context.Request.Params["status2"])); } if (context.Request.Params["lowerAmount"] != "") { searchParams.lowerAmount = decimal.Parse(context.Request.Params["lowerAmount"]); } if (context.Request.Params["upperAmount"] != "") { searchParams.upperAmount = decimal.Parse(context.Request.Params["upperAmount"]); } if (context.Request.Params["memo"] != "") { searchParams.memo = context.Request.Params["memo"]; } if (context.Request.Params["currencyCode"] != "") { searchParams.currencyCode = context.Request.Params["currencyCode"]; } if (context.Request.Params["origin"] != "") { searchParams.origin = (OriginType) Enum.Parse(typeof(OriginType), context.Request.Params["origin"]); } if (context.Request.Params["invoiceDateStart"] != "" || context.Request.Params["invoiceDateEnd"] != "") { DateRangeType dateRange = new DateRangeType(); dateRange.startDate = context.Request.Params["invoiceDateStart"]; dateRange.endDate = context.Request.Params["invoiceDateEnd"]; searchParams.invoiceDate = dateRange; } if (context.Request.Params["dueDateStart"] != "" || context.Request.Params["dueDateEnd"] != "") { DateRangeType dateRange = new DateRangeType(); dateRange.startDate = context.Request.Params["dueDateStart"]; dateRange.endDate = context.Request.Params["dueDateEnd"]; searchParams.dueDate = dateRange; } if (context.Request.Params["paymentDateStart"] != "" || context.Request.Params["paymentDateEnd"] != "") { DateRangeType dateRange = new DateRangeType(); dateRange.startDate = context.Request.Params["paymentDateStart"]; dateRange.endDate = context.Request.Params["paymentDateEnd"]; searchParams.paymentDate = dateRange; } if (context.Request.Params["creationDateStart"] != "" || context.Request.Params["creationDateEnd"] != "") { DateRangeType dateRange = new DateRangeType(); dateRange.startDate = context.Request.Params["creationDateStart"]; dateRange.endDate = context.Request.Params["creationDateEnd"]; searchParams.creationDate = dateRange; } // Create service object and make the API call InvoiceService service; SearchInvoicesResponse response; try { service = getService(context); response = service.SearchInvoices(request); } catch (Exception e) { context.Response.Write(e.Message); return; } // Display response values. Dictionary <string, string> keyResponseParams = new Dictionary <string, string>(); keyResponseParams.Add("API status", response.responseEnvelope.ack.ToString()); keyResponseParams.Add("correlationId", response.responseEnvelope.correlationId); keyResponseParams.Add("invoice count", response.count.ToString()); keyResponseParams.Add("hasNextPage", response.hasNextPage.ToString()); keyResponseParams.Add("hasPreviousPage", response.hasPreviousPage.ToString()); if (response.invoiceList != null && response.invoiceList.invoice != null) { int idx = 0; foreach (InvoiceSummaryType invoice in response.invoiceList.invoice) { keyResponseParams.Add(idx + " invoice Id", invoice.invoiceID); keyResponseParams.Add(idx + " invoice status", invoice.status.ToString()); idx++; } } displayResponse(context, "UpdateInvoice", keyResponseParams, service.getLastRequest(), service.getLastResponse(), response.error, null); }
// # SearchInvoices API Operation // Use the SearchInvoice API operation to search an invoice. public SearchInvoicesResponse SearchInvoicesAPIOperation() { // Create the SearchInvoicesResponse object SearchInvoicesResponse responseSearchInvoices = new SearchInvoicesResponse(); try { // # SearchInvoicesRequest // Use the SearchInvoiceRequest message to search an invoice. // The code for the language in which errors are returned, which must be // en_US. RequestEnvelope envelopeRequest = new RequestEnvelope(); envelopeRequest.errorLanguage = "en_US"; SearchParametersType parameters = new SearchParametersType(); // Invoice amount search. It specifies the smallest amount to be // returned. If you pass a value for this field, you must also pass a // currencyCode value. parameters.upperAmount = Convert.ToDecimal("4.00"); // Currency used for lower and upper amounts. It is required when you // specify lowerAmount or upperAmount. parameters.currencyCode = "USD"; // SearchInvoicesRequest which takes mandatory params: // // * `Request Envelope` - Information common to each API operation, such // as the language in which an error message is returned. // * `Merchant Email` - Email address of invoice creator. // * `SearchParameters` - Parameters constraining the search. // * `Page` - Page number of result set, starting with 1. // * `Page Size` - Number of results per page, between 1 and 100. SearchInvoicesRequest requestSearchInvoices = new SearchInvoicesRequest(envelopeRequest, "*****@*****.**", parameters, Convert.ToInt32("1"), Convert.ToInt32("10")); // Create the service wrapper object to make the API call InvoiceService service = new InvoiceService(); // # API call // Invoke the SearchInvoices method in service responseSearchInvoices = service.SearchInvoices(requestSearchInvoices); if (responseSearchInvoices != null) { // Response envelope acknowledgement string acknowledgement = "SearchInvoices API Operation - "; acknowledgement += responseSearchInvoices.responseEnvelope.ack.ToString(); logger.Info(acknowledgement + "\n"); Console.WriteLine(acknowledgement + "\n"); // # Success values if (responseSearchInvoices.responseEnvelope.ack.ToString().Trim().ToUpper().Equals("SUCCESS")) { // Number of invoices that matched the request. logger.Info("Count : " + responseSearchInvoices.count + "\n"); Console.WriteLine("Count : " + responseSearchInvoices.count + "\n"); } // # Error Values else { List <ErrorData> errorMessages = responseSearchInvoices.error; foreach (ErrorData error in errorMessages) { logger.Debug("API Error Message : " + error.message + "\n"); Console.WriteLine("API Error Message : " + error.message + "\n"); } } } } // # Exception log catch (System.Exception ex) { // Log the exception message logger.Debug("Error Message : " + ex.Message); Console.WriteLine("Error Message : " + ex.Message); } return(responseSearchInvoices); }