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

前もって感謝します。

4

0 に答える 0