using System;
using System.IO;
using System.Web.Services;
namespace CFRNNS
{
[System.Web.Services.WebService(Namespace = "CFRNNS")]
[System.Web.Services.WebServiceBinding(Name = "ServiceSoap", Namespace = "CFRNNS")]
public class FaxReceiveNotifyService : System.Web.Services.WebService
{
[WebMethod]
[System.Web.Services.Protocols.SoapDocumentMethod(
"CFRNNS/FaxReceiveNotify",
RequestNamespace = "CFRNNS",
ResponseNamespace = "CFRNNS",
Use = System.Web.Services.Description.SoapBindingUse.Literal,
ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public FaxReceiveNotifyResponse FaxReceiveNotify(FaxReceiveNotifyRequest faxDetails)
{
const int errorWritingFileToDisk = -2;
const int faxDetailsIsNull = -1;
const int success = 0;
const int failed = 1;
FaxReceiveNotifyResponse response = new FaxReceiveNotifyResponse();
string outputPath = @"d:\ConcordFaxReceiveNotifyWS\FaxFiles\";
if(faxDetails == null)
{
response.Status = failed;
response.ErrorCode = faxDetailsIsNull;
response.ErrorDescription = "faxDetails is NULL";
return response;
}
Console.WriteLine("Processing FaxReceiveNotify request");
Console.WriteLine("Account: " + faxDetails.Account);
Console.WriteLine("AuthUser: " + faxDetails.AuthUser);
Console.WriteLine("CalledNumber: " + faxDetails.CalledNumber);
Console.WriteLine("CallerNumber: " + faxDetails.CallerNumber);
Console.WriteLine("FaxDuration: " + faxDetails.FaxDuration);
Console.WriteLine("File Count: " + faxDetails.FaxFiles.Length);
Console.WriteLine("FaxFormat: " + faxDetails.FaxFormat);
Console.WriteLine("FaxMessageId: " + faxDetails.FaxMessageId);
Console.WriteLine("FaxPages: " + faxDetails.FaxPages);
Console.WriteLine("FaxPartialFlag: " + faxDetails.FaxPartialFlag);
Console.WriteLine("FaxRecipientTimeZone: " + faxDetails.FaxRecipientTimeZone);
Console.WriteLine("FaxReceiveDateTime: " + faxDetails.FaxReceiveDateTime);
Console.WriteLine("FaxResolution: " + faxDetails.FaxResolution);
Console.WriteLine("FaxSenderCSID: " + faxDetails.FaxSenderCSID);
Console.WriteLine("FaxSpeed: " + faxDetails.FaxSpeed);
if(faxDetails.FaxFiles != null)
{
Console.WriteLine("Writing files to disk");
foreach(FaxFile faxFile in faxDetails.FaxFiles)
{
Console.WriteLine("Writing to disk file name: " + faxFile.FileName + " file size: " + faxFile.FileData.Length);
try
{
File.WriteAllBytes(outputPath + faxFile.FileName, faxFile.FileData);
Console.WriteLine("File successfully written to disk");
}
catch(Exception ex)
{
Console.WriteLine("Error writing file to disk: " + ex.Message);
response.Status = failed;
response.ErrorCode = errorWritingFileToDisk;
response.ErrorDescription = "Error writing file to disk";
return response;
}
}
}
response.Status = success;
response.ErrorCode = success;
response.ErrorDescription = "Success";
return response;
}
}
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlType(Namespace = "CFRNNS")]
public class FaxReceiveNotifyRequest
{
public string AuthUser;
public string AuthPassword;
public string Account;
public string CalledNumber;
public string CallerNumber;
public string FaxReceiveDateTime;
public int FaxDuration;
public int FaxPartialFlag;
public int FaxPages;
public int FaxSpeed;
public string FaxFormat;
public string FaxMessageId;
public string FaxResolution;
public string FaxSenderCSID;
public string FaxRecipientTimeZone;
public FaxFile[] FaxFiles;
}
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlType(Namespace = "CFRNNS")]
public class FaxReceiveNotifyResponse
{
public int Status;
public int ErrorCode;
public string ErrorDescription;
}
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlType(Namespace = "CFRNNS")]
public class FaxFile
{
public string FileName;
[System.Xml.Serialization.XmlElement(DataType = "base64Binary")]
public byte[] FileData;
}
} |