我使用 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”。我在这里错过了什么吗?其他地方还有其他文档吗?还是我需要以某种方式解码该值?
提前致谢。