When an invalid fax number is passed, the 'JobSummary' API should show a cancelled status for Status.StatusCode, StatusMessage and JobSummary[].JobState[].state. However, these reflect the status of 'Complete'. The email that I receive does show the 'Cancelled' status. This 'Cancelled' status should also be reflected by the JobSummary API objects, so that my code can handle the scenario for a cancelled fax. Could you please look into this?
Here is the code for sending a fax, and checking its status:
protected void btnSendFax_Click(object sender, EventArgs e)
{
long bytesRead;
string base64String = null;
FileStream inFile;
Byte[] binaryData;
StringBuilder sb = new StringBuilder();
string sJobNumber;
jobsubmit.XOA xoa = new XOA();
jobsubmit.Authentication auth = new Authentication();
jobsubmit.JobSubmitResult result = new JobSubmitResult();
jobsubmit.XDDSAuthType xddsauth = new XDDSAuthType();
jobsubmit.JobSubmitRequest jobrequest = new JobSubmitRequest();
xddsauth.RequesterID = "AU/MENULOG";
xddsauth.Password = "123456";
auth.XDDSAuth = xddsauth;
jobsubmit.Request request = new Request();
request.Authentication = auth;
request.ReceiverKey = "http://premconn.premiereconnect.com/JobSubmit/2009/07";
request.ResultRequired = jobsubmit.RequiredType.yes;
request.ResultRequiredSpecified = true;
request.RequestID = "Test"; // +j.ToString();
xoa.RequestValue = request;
xoa.Url = "https://messaging.easylink.com/soap/sync";
jobsubmit.DocumentType[] doctype = new DocumentType[1];
doctype[0] = new DocumentType();
jobsubmit.DocDataType docdatatype = new DocDataType();
docdatatype.format = jobsubmit.DocEncodingFormat.base64;
inFile = new System.IO.FileStream(@e:\MenulogServiceHub\Harness\order.pdf, FileMode.Open, FileAccess.Read);
binaryData = new Byte[inFile.Length];
bytesRead = inFile.Read(binaryData, 0, binaryData.Length);
try
{
base64String = System.Convert.ToBase64String(binaryData, 0, binaryData.Length);
//base64String = Webcoda.IO.File.GetContentByFullPath(@e:/MenulogServiceHub/Harness/order.pdf, true, "", Encoding.ASCII);
}
catch (Exception ex2)
{
}
docdatatype.format = jobsubmit.DocEncodingFormat.base64;
docdatatype.Value = base64String;
message1 = "Test Fax"; //+j.ToString();
jobrequest.SubmitId = message1;
jobsubmit.DocumentType[] document = new DocumentType[1];
document[0] = new DocumentType();
document[0].DocType = "PDF";
document[0].@ref = "Doc"; // +j.ToString();
jobsubmit.EncodableStringType myFileName = new EncodableStringType();
myFileName.Value = "order.pdf";
document[0].Filename = myFileName;
document[0].ItemElementName = jobsubmit.ItemChoiceType.DocData;
document[0].Item = docdatatype;
jobrequest.DocumentSet = document;
jobsubmit.MessageType[] message = new MessageType[1];
message[0] = new jobsubmit.MessageType();
jobsubmit.ContentPartType[] content = new ContentPartType[1];
content[0] = new ContentPartType();
content[0].Item = "Doc"; //+j.ToString();
content[0].Treatment = TreatmentType.body;
content[0].TreatmentSpecified = true;
message[0].MessageId = "Message"; // +j.ToString();
message[0].Contents = content;
jobsubmit.JobOptionsType joboptions = new JobOptionsType();
jobsubmit.FaxOptionsType faxoptions = new FaxOptionsType();
jobsubmit.DeliveryType deliverytype = new DeliveryType();
faxoptions.FaxMode = FaxModeType.standard;
//faxoptions.DeliveryRetryPattern = "3";
joboptions.FaxOptions = faxoptions;
deliverytype.Schedule = ScheduleType.express;
joboptions.Delivery = deliverytype;
message[0].JobOptions = joboptions;
jobsubmit.ReportOptionsType reports = new ReportOptionsType();
jobsubmit.ReportOptionsTypeDeliveryReport deliveryreport = new ReportOptionsTypeDeliveryReport();
deliveryreport.DeliveryReportType = MainReportTypeEnum.detail;
reports.DeliveryReport = deliveryreport;
message[0].Reports = reports;
jobsubmit.FaxType[] deliveryfax = new FaxType[1];
deliveryfax[0] = new FaxType();
//deliveryfax[0].Phone = "0285725328";
deliveryfax[0].Phone = "0000000000";
deliveryfax[0].@ref = "DeliveryFax"; //+j.ToString();
message[0].Destinations = deliveryfax;
jobrequest.Message = message;
jobsubmit.Response response = new Response();
xoa.ResponseValue = response;
jobsubmit.JobSubmitResult jobresult = new JobSubmitResult();
try
{
jobresult = xoa.JobSubmit(jobrequest);
}
catch (Exception ex)
{
}
bool success = false;
success = ProcessResponse(xoa.ResponseValue);
if (success)
{
if (jobresult.Status.StatusCode.Equals("0"))
{
try
{
lblStatus.Text = jobresult.MessageResult[0].JobId.XDN.ToString();
lblStatus3.Text = jobresult.MessageResult[0].JobId.MRN.ToString();
}
catch (Exception ex1)
{
}
}
}
}
protected void btnFaxStatus_Click(object sender, EventArgs e)
{
StringBuilder sb2 = new StringBuilder();
jobSummary.XOA xoa2 = new jobSummary.XOA();
jobSummary.Authentication auth2 = new jobSummary.Authentication();
jobSummary.XDDSAuthType xddsauth2 = new jobSummary.XDDSAuthType();
xddsauth2.RequesterID = "AU/MENULOG";
xddsauth2.Password = "123456";
auth2.XDDSAuth = xddsauth2;
jobSummary.Request request = new jobSummary.Request();
request.Authentication = auth2;
request.ReceiverKey = "http://premconn.premiereconnect.com/JobSummary/2008/10";
request.ResultRequired = jobSummary.RequiredType.yes;
request.ResultRequiredSpecified = true;
request.RequestID = "Test17";
xoa2.RequestValue = request;
xoa2.Url = "https://messaging.easylink.com/soap/sync";
jobSummary.JobSummaryResult jobsummaryresult = new jobSummary.JobSummaryResult();
jobSummary.StatusType jsr_status = new jobSummary.StatusType();
jobSummary.JobSummaryDataType[] jobsummarydata = new jobSummary.JobSummaryDataType[1];
jobsummarydata[0] = new jobSummary.JobSummaryDataType();
jobSummary.JobSummaryRequest jobsummaryrequest = new jobSummary.JobSummaryRequest();
jobSummary.JobIdType[] idRequests = new jobSummary.JobIdType[1];
idRequests[0] = new jobSummary.JobIdType();
idRequests[0].XDN = lblStatus.Text.ToString();
idRequests[0].MRN = lblStatus3.Text.ToString();
jobsummaryrequest.SubmitId = lblStatus.Text.ToString();
jobsummaryrequest.JobId = idRequests;
jobsummaryresult = xoa2.JobSummary(jobsummaryrequest);
string statuscode = jobsummaryresult.Status.StatusCode.ToString();
string statusmessage = jobsummaryresult.Status.StatusMessage.ToString();
string jobstate1 = jobsummaryresult.JobSummaryData[0].JobState[0].state.ToString();
sb2.AppendFormat("Status Code: {0} \n", statuscode);
sb2.AppendFormat("Status Message: {0} \n", statusmessage);
sb2.AppendFormat("Jobstate: {0}", jobstate1);
lblStatus2.Text = sb2.ToString();
}