Class FinBankParamData

Namespace
Subsembly.FinTS
Assembly
Subsembly.FinTS.Core.dll

Wraps the bank parameter data (BPD) sequence.

public sealed class FinBankParamData : IEnumerable
Inheritance
FinBankParamData
Implements
Inherited Members

Constructors

FinBankParamData()

Creates a new and completely empty FinBankParamData instance.

public FinBankParamData()

FinBankParamData(FinSegment)

Creates a new FinBankParamData instance from a given HIBPA segment.

public FinBankParamData(FinSegment aHIBPA)

Parameters

aHIBPA FinSegment

HIBPA segment that is the initial content of this FinBankParamData instance.

Exceptions

ArgumentNullException

The parameter aHIBPA was null.

ArgumentException

The parameter aHIBPA was not a segment of type "HIBPA".

Properties

BankCode

Bank code from the HIBPA segment.

public string BankCode { get; }

Property Value

string

Exceptions

InvalidOperationException

If this FinBankParamData instance was not filled with BPD segments, yet, then an InvalidOperationException is thrown.

BankName

Bank name from HIBPA segment.

public string BankName { get; }

Property Value

string

Exceptions

InvalidOperationException

If this FinBankParamData instance was not filled with BPD segments, yet, then an InvalidOperationException is thrown.

Count

Number of transaction parameter data segments available in this bank parameter data.

public int Count { get; }

Property Value

int

CountryCode

Country code from the HIBPA segment.

public string CountryCode { get; }

Property Value

string

Exceptions

InvalidOperationException

If this FinBankParamData instance was not filled with BPD segments, yet, then an InvalidOperationException is thrown.

FinTSVersions

List of supported FinTS versions.

public int[] FinTSVersions { get; }

Property Value

int[]

HIBPA

Provides direct access to the HIBPA segment.

public FinSegment HIBPA { get; }

Property Value

FinSegment

Remarks

Direct access to the HIBPA segment is discouraged. Instead the various properties of this class shall be used to access the information from the HIBPA segment.

Exceptions

InvalidOperationException

If this FinBankParamData instance was not filled with BPD segments, yet, then an InvalidOperationException is thrown.

HIKOM

Direct access to HIKOM segment.

public FinSegment HIKOM { get; }

Property Value

FinSegment

HIKPV

Direct access to HIKPV segment.

public FinSegment HIKPV { get; }

Property Value

FinSegment

HIPINS

Direct access to HIPINS segment.

public FinSegment HIPINS { get; }

Property Value

FinSegment

HISHV

Deprecated: Use SecurityMethodParam instead!

public FinSegment HISHV { get; }

Property Value

FinSegment

IsEmpty

Is

true
if this BPD sequence was not filled with any BPD segments, yet.
public bool IsEmpty { get; }

Property Value

bool

Languages

List of supported languages.

public FinLanguage[] Languages { get; }

Property Value

FinLanguage[]

MaxLenPin

Maximum PIN length for PIN/TAN security.

public int MaxLenPin { get; }

Property Value

int

This value can optionally be included in the FinTS 3.0 segment HIPINS. If it is not explicitly provided, then 99 will be returned if HIPINS is supported. If no HIPINS segment is present, then 0 is returned.

MaxLenTan

Maximum TAN length for PIN/TAN security.

public int MaxLenTan { get; }

Property Value

int

This value can optionally be included in the FinTS 3.0 segment HIPINS. If it is not explicitly provided, then 99 will be returned if HIPINS is supported. If no HIPINS segment is present, then 0 is returned.

MaxMsgSize

Optional maximum message size from HIBPA segment.

public int MaxMsgSize { get; }

Property Value

int

The maximum allowed message size for customer messages in kilobytes. No guarantees are given that bank message also obey this limit. If no maximum message size is given, then this property is zero.

MaxOrderTypes

Maximum number of different order types that may be sent in a single customer message.

public int MaxOrderTypes { get; }

Property Value

int

MaxTimeout

Optional maximum timeout before the dialog is automatically aborted.

public int MaxTimeout { get; }

Property Value

int

The maximum time in seconds that a client may be idle before the server automatically aborts an open dialog. If this is not explicitly given the property will be zero.

MinLenPin

Minimum PIN length for PIN/TAN security.

public int MinLenPin { get; }

Property Value

int

This value can optionally be included in the FinTS 3.0 segment HIPINS. If it is not explicitly provided, then 1 will be returned, which is the absolute minimum. If no HIPINS segment is present, then 0 is returned.

MinTimeout

Optional minimum timeout for life-indicator in FinTS 3.0.

public int MinTimeout { get; }

Property Value

int

The minimum time in seconds that must pass before the client may send a life-indicator message in FinTS 3.0. If this is not explicitly given the property will be zero.

SecurityMethodParam

The HISHV segment.

public FinSecurityMethodParam SecurityMethodParam { get; }

Property Value

FinSecurityMethodParam

TextCustID

Optional text label that shall be used to prompt for entering the customer ID.

public string TextCustID { get; }

Property Value

string

TextUserID

Optional text label that shall be used to prompt for entering the user ID.

public string TextUserID { get; }

Property Value

string

Version

BPD version from the HIBPA segment.

public int Version { get; }

Property Value

int

Exceptions

InvalidOperationException

If this FinBankParamData instance was not filled with BPD segments, yet, then an InvalidOperationException is thrown.

Methods

Clear()

Remove all BPD segments from this BPD Sequence.

public void Clear()

FindCommAddress(FinCommService)

Find the communication address for a communication service in the HIKOM segment.

public string FindCommAddress(FinCommService nCommService)

Parameters

nCommService FinCommService

The communication service for which to return the communication address.

Returns

string

If there is a HIKOM segment, and it contains a communication address for the requested communication service, then it will be returned. Otherwise, null is returned. The communication address is not validated, but returned exactly as it was supplied by the bank.

FindParameterSegment(string, int)

Find a parameter segment with the highest acceptable segment version.

public FinSegment FindParameterSegment(string sSegmentType, int nMaxSegmentVersion)

Parameters

sSegmentType string

The segment type of the parameter segment that is sought. Usually this looks something like HIxxxS. This must not be null.

nMaxSegmentVersion int

Maximum acceptable parameter segment version that is sought. If this is zero, then the very first occurence of sSegmentType is returned, regardless of its version number. If this is MaxValue, then the parameter segment with the given type and the highest version number in the collection is returned. In any other case, the first parameter segment with a matching sSegmentType and the highest version number that is less or equal than nMaxSegmentVersion is returned.

Returns

FinSegment

If an acceptable parameter segment was found, then its reference is returned. If not, then null is returned. The version number of the parameter segment that was actually found can be checked through the Version property of the returned FinSegment.

Exceptions

ArgumentNullException

null was passed for the sSegmentType parameter.

ArgumentOutOfRangeException

A negative nMaxSegmentVersion value was passed.

GetEnumerator()

Implements IEnumerable and provides an enumerator that iterates all HIxxxS transaction parameter data segments.

public IEnumerator GetEnumerator()

Returns

IEnumerator

Read(Stream)

Reads a complete bank parameter data segment sequence from a given stream.

public static FinBankParamData Read(Stream aStream)

Parameters

aStream Stream

Input stream that provides the raw bank parameter data segment sequence.

Returns

FinBankParamData

Returns a new instance of the FinBankParamData class initialised with the bank parameter data segment sequence from the loaded stream.

Exceptions

ArgumentNullException

Parameter aStream was null.

TanRequired(string)

Determine the TAN requirements for a given segment type.

public int TanRequired(string sSegmentType)

Parameters

sSegmentType string

The order segment type, e.g. "HKUEB", to query.

Returns

int

If a TAN is required for the given segment type, then 1 is returned. If no TAN is required, then 0 is returned. If the segment type is not supported at all for PIN/TAN security, then -1 is returned.

Write(Stream)

Writes the complete bank parameter data segment sequence to the given stream.

public void Write(Stream aStream)

Parameters

aStream Stream

Output stream that receives the raw bank parameter data segment sequence.

Exceptions

ArgumentNullException

Parameter aStream was null.