XFuture XConnector API dla mBank
Metoda pozwala pobrać wygenerowane przez bank potwierdzienie realizacji dyspozycji.

Namespace: GTools
Assembly: mBankConnectorLibrary (in mBankConnectorLibrary.dll) Version: 2.0.0.0

Syntax

C#
public void getPDFTransferConfirmation(
	CollectedTransferData operation
)
Visual Basic
Public Sub getPDFTransferConfirmation ( _
	operation As CollectedTransferData _
)
Visual C++
public:
void getPDFTransferConfirmation(
	CollectedTransferData^ operation
)

Parameters

operation
Type: GTools..::..CollectedTransferData
Referencja do obiektu klasy CollectedTransferData reprezentującej przelew, którego potwierdzenie ma zostać pobrane. Ten obiekt musi pochodzić z listy zwracanej przez operacje 'getDetailedHistory'

Remarks

Metoda pozwala uzyskać potwierdzenie zrealizowanego zlecenia. Zlecenie musi pochodzić z listy operacji historycznych, uzyskiwanej za pomocą metody 'getDetailedHistory'. Wybrany obiekt z uzyskanej w ten sposób listy, należy przekazać jako argument do wywołania 'getPDFTransferConfirmation'. Przy pomyślnym przebiegu wykonania metody, wyzwalane jest zdarzenie 'transferPDFDetailsReady'. W przypadku niepowodzenia komunikat błędu umieszczany jest we właściwości 'errorMessage' Metoda jest asynchroniczna i może wyzwalać szereg zdarzeń. 'statusChanged' - zdarzenie wyzwalane jest w trakcie wykonywania metody w celu informowania o kolejnych etapach wykonywanej operacji 'operationFinished' - zdarzenie wyzwalane jest po zakończeniu wykonywania metody i pozwala ocenić rezultat operacji 'transferPDFDetailsReady' - zdarzenie wyzwalane jest, gdy strumień z danymi potwierdzenia wskazanego przelewu jest gotowy do odczytu.

Examples

Utwórz instancję klasy GetPdfExampleClass, wykonaj logowanie za pomocą metody 'login'; następnie wywołaj metodę getLastOperationPDF; w pierwszej kolejności pobierane są dane ostatnio zaksięgowanej operacji. W rezultacie wyzwalane jest zdarzenie lastOperationReady. Słuchacz tego zdarzenia implementuje wywołanie metody getPDFTransferConfirmation. Po pobraniu danych pliku pdf, generowane jest zdarzenie transferPDFDetailsReady i strumień danych zapisywany jest do pliku.
CopyC#
 //Przykładowa klasa, demonstrująca sposób pobierania 
 //potwierdzenia operacji w formacie PDF.
class GetPdfExampleClass
{
    //prywatny obiekt konektora
    private GTools.mBankConnector mymBankConnector;
    public string pdfFilePath=@"c:\operationPDF.pdf";
    //konstruktor
    public GetPdfExampleClass(string login, string haslo)
    {
        this.mymBankConnector = new mBankConnector(login, haslo);
        this.mymBankConnector.operationFinished += new mBankConnector.mBankOperation_StatusChangedEventListener(mymBankConnector_operationFinished);
        this.mymBankConnector.statusChanged += new mBankConnector.mBankConnector_StatusChangedEventListener(mymBankConnector_statusChanged);
        this.mymBankConnector.lastOperationReady += new mBankConnector.mBankConnector_LastOperationReady(mymBankConnector_lastOperationReady);
        this.mymBankConnector.transferPDFDetailsReady += new mBankConnector.mBankConnector_PDFDataReady(mymBankConnector_transferPDFDetailsReady);
    }

    //słuchacz zdarzenia transferPDFDetailsReady konektora, wyzwalany
    //po zakończeniu operacji pobierania danych PDF wskazanej
    //operacji
    private void mymBankConnector_transferPDFDetailsReady(System.IO.Stream pdfContent)
    {
        System.IO.FileStream fileStream = new System.IO.FileStream(this.pdfFilePath, System.IO.FileMode.Create, System.IO.FileAccess.Write);
        byte[] buffer = new byte[256];

        System.Diagnostics.Debug.WriteLine("Zapisywanie pliku PDF: " + this.pdfFilePath);

        int bytesRead = pdfContent.Read(buffer, 0, 256);
        while (bytesRead > 0)
        {
            fileStream.Write(buffer, 0, bytesRead);
            bytesRead = pdfContent.Read(buffer, 0, 256);
        }
        pdfContent.Close();
        fileStream.Close();

        System.Diagnostics.Debug.WriteLine("Zapisywanie pliku PDF zakończone");
    }

    //słuchacz zdarzenia lastOperationReady konektora, wyzwalany
    //po zakończeniu operacji pobierania danych ostatnio księgowanej
    //operacji
    private void mymBankConnector_lastOperationReady(CollectedTransferData lastOperation, string parentAccountNumber)
    {
        //Obiekt klasy CollectedTransferData, zawierający
        //dane operacji jest już gotowy. Żądamy potwierdzenia
        //w formacie PDF operacji. W przypadku sukcesu, 
        //wygenerowane zostanie zdarzenie transferPDFDetailsReady.
        mymBankConnector.getPDFTransferConfirmation(lastOperation);
    }



    //sluchacz zdarzenia operationFinished konektora, wyzwalany
    //po zakończeniu operacji
    private void mymBankConnector_operationFinished(mBankConnector.mBankLastOperationResultEnum status)
    {

        //Jeśli operacja zakończyła się sukcesem
        if (status == mBankConnector.mBankLastOperationResultEnum.SUCCESS)
        {
            if (mymBankConnector.serviceContext == ServiceType.LOGIN)
            {
                System.Diagnostics.Debug.WriteLine("Logowanie zakończone sukcesem");

            }

        }
        //Jeśli operacja zakończyła się niepowodzeniem
        else
        {
            //Wyświetlamy informację w oknie diagnostycznym
            System.Diagnostics.Debug.WriteLine(
                 string.Format("Operacja {0} zakończyła się niepowodzeniem. Komunikat błędu: {1}",
                 mymBankConnector, mymBankConnector.serviceContext.ToString(),
                 mymBankConnector.errorMessage)
            );
        }

    }

    //sluchacz zdarzenia statusChanged konektora, wyzwalany
    //przy każdej zmianie statusu
    private void mymBankConnector_statusChanged(mBankConnector.mBankConnectorStatusEnum status)
    {
        System.Diagnostics.Debug.WriteLine(string.Format("Zmiana statusu konektora: {0}", mymBankConnector.status.ToString()));
    }
    //metoda usługi logowania
    public void login()
    {
        //wywołanie asynchronicznej metody logowania
        mymBankConnector.login();
        //po zakonczeniu logowania, metoda mymBankConnector_operationFinished, 
        //zarejestrowana jako słuchacz zdarzenia 'operationFinished' konektora,wyświetli 
        //listę dostępnych rachunków i kontekstów
    }

    //metoda pozwala pobrać potwierdzenie PDF ostatnio zaksięgowanej operacji
    public void getLastOperationPDF()
    {
        if (mymBankConnector.status != mBankConnector.mBankConnectorStatusEnum.LOGGED_IN)
        {
            System.Diagnostics.Debug.WriteLine(
                "Konektor nie jest zalogowany, lub poprzednia operacja nie zakończyła się jeszcze");
            return;
        }
        else
        {
            //Następuje próba pobrania danych ostatnio zaksięgowanej operacji
            //W przypadku sukcesu, rezultat otrzymamy w zdarzeniu 'lastOperationReady'.
            //Błąd spowoduje wygenerowanie zdarzenia 'operationFinished' z argumentem
            //'Failure' i odpowiednim komunikatem błędu we właściwości 'errorMessage'
            //konektora.
            mymBankConnector.getLastOperation(mymBankConnector.accounts[0].accountNumber);
        }
    }

}

See Also