C# Copy imageCopy
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;
    }


}

See Also