0

我使用 FAXCOMEXLib 为我的 Web 应用程序创建了一个传真作业界面。传真机制正常工作并正常发送传真。我正在尝试设置一些传真状态的日志记录,并且我正在使用文档中定义的侦听器:

    public FaxInterface()
    {
        faxSrv = new FaxServer();
        var serverName = Environment.MachineName;
        faxSrv.Connect(serverName);
        faxSrv.OnOutgoingJobChanged += faxSrv_OnOutgoingJobChanged;
        faxSrv.OnOutgoingJobAdded += faxSrv_OnOutgoingJobAdded;
        faxSrv.OnOutgoingJobRemoved += faxSrv_OnOutgoingJobRemoved;
        faxSrv.ListenToServerEvents(FAXCOMEXLib.FAX_SERVER_EVENTS_TYPE_ENUM.fsetOUT_QUEUE |
                            FAXCOMEXLib.FAX_SERVER_EVENTS_TYPE_ENUM.fsetIN_QUEUE);
    }

这有效。我的事件监听器被正确触发。但是我在JobChanged侦听器中的某些数据遇到问题,这些数据定义如下:

    private void faxSrv_OnOutgoingJobChanged(FaxServer pfaxserver, string bstrjobid, FaxJobStatus pjobstatus)
    {
        using (IDbConnection db = new SqlConnection(ConnectionStringHelper.ConnectionString))
        {
            db.Execute("update T_FAXLOG set LogText = CONCAT(LogText, @newText) where JobId = @jobId", new { newText = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss:ff tt") + " " + pjobstatus.Status.ToString() + Environment.NewLine, jobId = bstrjobid });
        }
    }

我的问题是我似乎在pjobstatus.Status传递给我的函数中得到了一个意想不到的值。如果我“查看定义”的pjobstatus.Status类型(即:)enum FAX_JOB_STATUS_ENUM,我会在定义中看到:

namespace FAXCOMEXLib
{
    public enum FAX_JOB_STATUS_ENUM
    {
        fjsPENDING = 1,
        fjsINPROGRESS = 2,
        fjsFAILED = 8,
        fjsPAUSED = 16,
        fjsNOLINE = 32,
        fjsRETRYING = 64,
        fjsRETRIES_EXCEEDED = 128,
        fjsCOMPLETED = 256,
        fjsCANCELED = 512,
        fjsCANCELING = 1024,
        fjsROUTING = 2048
    }
}

但是,当我在服务器中运行我的应用程序并“暂停”我的传真进程时,我在状态字段中得到值“49”。而且,如您所见,该数字不在定义中。我希望暂停时会得到“16”,但我会得到“49”。我在这里错过了什么吗?其他地方还有其他文档吗?还是我需要以某种方式解码该值?

提前致谢。

4

0 回答 0