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
(これは this: 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」になります。ここで何か不足していますか?これに関する他のドキュメントは他にありますか?または、その値を何らかの方法でデコードする必要がありますか?
前もって感謝します。