XFuture XConnector API dla mBank
Metoda pozwala pobrać szczegółowe dane historyczne.

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

Syntax

C#
public void getDetailedHistory(
	DateTime from,
	DateTime to,
	string accountNumber
)
Visual Basic
Public Sub getDetailedHistory ( _
	from As DateTime, _
	to As DateTime, _
	accountNumber As String _
)
Visual C++
public:
void getDetailedHistory(
	DateTime from, 
	DateTime to, 
	String^ accountNumber
)

Parameters

from
Type: System..::..DateTime
Dolna granica przedziału czasowego (od kiedy)
to
Type: System..::..DateTime
Górna granica przedziału czasowego (do kiedy)
accountNumber
Type: System..::..String
Numer rachunku, którego dotyczy wywołanie

Remarks

Metoda pobiera szczegółowe dane historyczne wskazanego rachunku. Proces pobierania, w zależności od zakresu dat i ilości zaksięgowanych operacji, może być czasochłonny. Aby umożliwić monitorowanie postępu, metoda wyzwala zdarzenie 'operationProgressing'. Po zakończniu gromadzenia danych, wyzwalane jest zdarzenie detailedHistoryReady. Jeśli proces gromadzenia danych zostanie przerwany na skutek wystapienia problemów z połączeniem lub dostępem do serwisu Banku, należy powtórzyć wywołanie 'getDetailedHistory', albo skorzystać z wbudowanego mechanizmu wznawiania procesu gromadzenia danych historycznych. Procedura wznowienia pozwala na kontynuację procesu pobierania danych od momentu, w którym wystąpił błąd. Po wystąpieniu błędu wyzwalane jest zdarzenie 'operationFinished' z wartością argumentu 'FAILURE'. Dane dotychczas zgromadzone znajdują się w liście dostępnej za pośrednictwem właściwości 'brokenHistorySession'. Przed wznowieniem sesji dane te należy we własnym zakresie przejąć, ponieważ lista 'brokenHistorySession', w przpadku wystapienia kolejnego błędu, zostanie nadpisana nowymi danymi. Uszkodzoną sesję pobierania danych historycznych wznawiamy poprzez wywołanie metody 'continueBrokenHistorySession'. 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 'detailedHistoryReady' - zdarzenie wyzwalane jest, gdy dane historyczne są gotowe.

Examples

Klasa demonstruje sposób pobierania szczegółowych danych historycznych. W trakcie pobierania wyzwalane jest zdarzenie postępu (operationProgressing). Aby przetestować przykład, utwórz obiekt klasy GetDetailedHistoryExampleClass, wykonaj logowanie ( metoda login ). Po zakonczeniu operacji, wywołaj metodę getHistory. Rezultaty obserwuj w oknie diagnostycznym.
CopyC#
 //Przykładowa klasa, demonstrująca sposób pobierania 
 //szczegółowych danych historycznych
class GetDetailedHistoryExampleClass
{
    //prywatny obiekt konektora
    private GTools.mBankConnector mymBankConnector;
    //konstruktor
    public GetDetailedHistoryExampleClass(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.detailedHistoryReady += new mBankConnector.mBankConnector_HistoryReadyEventListener(mymBankConnector_detailedHistoryReady);
        this.mymBankConnector.operationProgressing += new mBankConnector.mBankConnector_OperationProgressEventListener(mymBankConnector_operationProgressing);
    }

    //słuchacz zdarzenia operationProgressing konektora, wyzwalany
    //przy zarejestrowaniu postępu operacji
    void mymBankConnector_operationProgressing(int percentageProgress, int total, int processed, string accountNumber)
    {
        System.Diagnostics.Debug.WriteLine("Stan operacji: " + percentageProgress.ToString()+" %");
    }

    //słuchacz zdarzenia transferPDFDetailsReady konektora, wyzwalany
    //po zakończeniu operacji pobierania danych historycznych
    void mymBankConnector_detailedHistoryReady(System.Collections.Generic.List<CollectedTransferData> collectedOperations, string accountNumber)
    {
        System.Diagnostics.Debug.WriteLine("Historia została pobrana.");
        foreach (CollectedTransferData operation in collectedOperations)
        {
            System.Diagnostics.Debug.WriteLine(
                string.Format("Data księgowania:{0} ,opis:{1}, kwota:{2}",
                    operation.accountingDate,
                    operation.operationDescription,
                    operation.transferAmount
                )
            );
        }
    }

    //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ć historię operacji z wskazanego zakresu czasu
    public void getHistory(System.DateTime from, System.DateTime to)
    {
        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 historii dla rachunku pierwszego na liście rachunków. 
            //W przypadku sukcesu, rezultat otrzymamy w zdarzeniu 'detailedHistoryReady'.
            //Błąd spowoduje wygenerowanie zdarzenia 'operationFinished' z argumentem
            //'Failure' i odpowiednim komunikatem błędu we właściwości 'errorMessage'
            //konektora.
            mymBankConnector.getDetailedHistory(from, to, mymBankConnector.accounts[0].accountNumber);
        }

    }
}

See Also