我使用FAXCOMEXLib为我的网络应用创建了一个传真作业界面。传真机制正在工作并正确发送传真。我正在尝试设置一些传真状态的记录,我正在使用docs中定义的监听器:
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”。我在这里错过了什么吗?在其他地方还有其他一些文件吗?或者我需要以某种方式解码该值吗?
提前致谢。