C# Fax – Query Submitted Faxes Using FaxQuery2

Download the C# fax API zip file.

The FaxQuery2 method demonstrated in this sample allows you to display detailed information for a number of previously-submitted C# faxes. FaxQuery2 provides more advanced querying options than FaxQuery (for more details, see Side-by-Side Comparison of Web Service Methods).

In the C# fax code snippet below, detailed information is displayed for a number of faxes previously submitted to the InterFAX Web service:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FaxQuery2
{
    class Program
    {
        static void Main(string[] args)
        {
            string username = "";
            string password = "";
            interfax.QueryForm queryForm = new interfax.QueryForm();
            // intialises a form on which you can specify the desired query parameters
            // subject
            queryForm.Subject = new interfax.QueryCondition();
            queryForm.Subject.Verb = interfax.SQLOperatorEnum.Equals;
            queryForm.Subject.VerbData = "";
            // fax number
            queryForm.FaxNumber = new interfax.QueryCondition();
            queryForm.FaxNumber.Verb = interfax.SQLOperatorEnum.Equals;
            queryForm.FaxNumber.VerbData = "";
            // date from and to
            queryForm.DateFrom = new DateTime(1980, 1, 1);
            queryForm.DateTo = new DateTime(2080, 1, 1);
            // user ID
            queryForm.UserID = new interfax.QueryCondition();
            queryForm.UserID.Verb = interfax.SQLOperatorEnum.Equals;
            queryForm.UserID.VerbData = "";
            // reply address
            queryForm.ReplyAddress = new interfax.QueryCondition();
            queryForm.ReplyAddress.Verb = interfax.SQLOperatorEnum.Equals;
            queryForm.ReplyAddress.VerbData = "";
            // transaction ID
            queryForm.TransactionID = new interfax.QueryCondition();
            queryForm.TransactionID.Verb = interfax.SQLOperatorEnum.Equals;
            queryForm.TransactionID.VerbData = "546585833";
            // parent transaction ID (for batches)
            queryForm.ParentTransactionID = new interfax.QueryCondition();
            queryForm.ParentTransactionID.Verb = interfax.SQLOperatorEnum.Equals;
            queryForm.ParentTransactionID.VerbData = "546585833";
            // status ( 0 is successfull, for others, see error code list)
            queryForm.Status = new interfax.QueryCondition();
            queryForm.Status.Verb = interfax.SQLOperatorEnum.Equals;
            queryForm.Status.VerbData = "0";
            // show hidden transaction ids 
            queryForm.ShowHiddenTransactions = true;
            // end of query conditions form
            interfax.QueryControl queryControl = new interfax.QueryControl();
            // initialises a form which controls settings for the query made
            // only display broadcast transaction ids
            queryControl.OnlyParents = false;
            // number of transaction ids returned, maximum is as per system limitations
            queryControl.NumOfResults = 1;
            // start displaying results beginning with this transaction id
            queryControl.StartingRecord = 0;
            queryControl.OrderBy = interfax.OrderByColumnEnum.TransactionID;
            // sort ascending ?
            queryControl.AscOrderDirection = false;
            // full fax details returned ?
            queryControl.ReturnItems = true;
            // display statistical information regarding success/failure/error types returned
            queryControl.ReturnStats = true;
            //end of query settings form
            interfax.InterFax interfaxWebServiceOutbound = new interfax.InterFax();
            interfax.FaxQueryResult resultStatus = interfaxWebServiceOutbound.FaxQuery2(username, password, queryForm, queryControl);
            if (resultStatus.ResultCode == 0) // if it is successfull, display the results of the query
            {
                if(resultStatus.TotalTransactionsNum != 0) // if there are results to display
                {
                    Console.WriteLine(string.Format("Found {0} result(s).", resultStatus.TotalTransactionsNum)); //verbose
                    Console.WriteLine(string.Format("Displaying Results : "));
                    for (int i = 0; i <= resultStatus.FaxItems.Length - 1; i++)
                    {
                        Console.WriteLine(string.Format("============{0}============", i + 1));
                        Console.WriteLine(string.Format("Username: {0}", resultStatus.FaxItems[i].UserID));
                        Console.WriteLine(string.Format("TransactionID: {0}", resultStatus.FaxItems[i].TransactionID));
                        Console.WriteLine(string.Format("DestinationFax: {0}", resultStatus.FaxItems[i].DestinationFax));
                        Console.WriteLine(string.Format("SubmitTime: {0}", resultStatus.FaxItems[i].SubmitTime));
                        Console.WriteLine(string.Format("PostponeTime: {0}", resultStatus.FaxItems[i].PostponeTime));
                        Console.WriteLine(string.Format("CompletionTime: {0}", resultStatus.FaxItems[i].CompletionTime));
                        Console.WriteLine(string.Format("Duration: {0}", resultStatus.FaxItems[i].Duration));
                        Console.WriteLine(string.Format("Subject: {0}", resultStatus.FaxItems[i].Subject));
                        Console.WriteLine(string.Format("Reply Email: {0}", resultStatus.FaxItems[i].ReplyEmail));
                        Console.WriteLine(string.Format("Sender CSID: {0}", resultStatus.FaxItems[i].SenderCSID));
                        Console.WriteLine(string.Format("Remote CSID: {0}", resultStatus.FaxItems[i].RemoteCSID));
                        Console.WriteLine(string.Format("Pages Submitted: {0}", resultStatus.FaxItems[i].PagesSubmitted));
                        Console.WriteLine(string.Format("Pages Sent: {0}", resultStatus.FaxItems[i].PagesSent));
                        Console.WriteLine(string.Format("Status: {0}", resultStatus.FaxItems[i].Status));
                    }
                }
                else // no results
                {
                    Console.WriteLine(string.Format("There are no results to display matching your query."));
                }
            }
            else // if it is an error, provide the error code
            {
                Console.WriteLine(string.Format("Error Code {0}.", resultStatus.ResultCode));
            }
            Console.ReadLine(); // use this to keep console open (waiting for keypress) after it is finished
        }
    }
}