Class FinUserParamData
Wraps the user parameter data (UPD) sequence.
Inheritance
Implements
Inherited Members
Namespace: Subsembly.FinTS
Assembly: Subsembly.FinTS.Core.dll
Syntax
public sealed class FinUserParamData : IEnumerable
Remarks
With the introduction of SEPA in HBCI an additional SEPA account information segment with the ID HISPA was specified. This additional segment is not an official part of the UPD. However, in order to have all account information in one convenient place, the HISPA segment can be stored in a FinUserParamData instance. If it is, then the FinAcctInfo data from the HIUPD segments is automatically augmented with the SEPA information from the HISPA segment. In addition, the SEPA information is save together with the UPD and thus also inside the FinContact that owns it.
Constructors
FinUserParamData()
Creates a new and completely empty FinUserParamData instance.
Declaration
public FinUserParamData()
FinUserParamData(FinSegment)
Creates a new FinUserParamData instance from a given HIUPA segment.
Declaration
public FinUserParamData(FinSegment aHIUPA)
Parameters
Type | Name | Description |
---|---|---|
FinSegment | aHIUPA | HIUPA segment that is the initial content of this FinUserParamData instance.
May be |
Exceptions
Type | Condition |
---|---|
System.ArgumentException | The given HIUPA segment does not have the Type HIUPA. |
Properties
AcctInfos
List of collected HIUPD segments.
Declaration
public IList AcctInfos { get; }
Property Value
Type | Description |
---|---|
System.Collections.IList |
Count
Number of accounts available in this user parameter data.
Declaration
public int Count { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
Extension
Optional extension information from extended HIUPA segment version 4.
Declaration
public string Extension { get; }
Property Value
Type | Description |
---|---|
System.String | A string with up to 2048 characters with proprietary content. If not supplied,
then this property is |
HaveAllSepaInfos
Indicates whether an IBAN and BIC is available for all HIUPD accounts in this collection.
Declaration
public bool HaveAllSepaInfos { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Remarks
This property is also true
, if the collection is empty. In addition only
accounts that actually support HKSPA are considered. If this is true
, then
no HKSPA is needed.
HIUPA
Provides direct access to the HIUPA segment.
Declaration
public FinSegment HIUPA { get; }
Property Value
Type | Description |
---|---|
FinSegment |
Remarks
Direct access to the HIUPA segment is discouraged. Instead the various properties of this class shall be used to access the information from the HIUPA segment.
IsEmpty
Is
true
if this UPD sequence does not have any HIUPA or HIUPD
segments, yet.
Declaration
public bool IsEmpty { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Item[Int32]
Access account information by index.
Declaration
public FinAcctInfo this[int i] { get; }
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | i |
Property Value
Type | Description |
---|---|
FinAcctInfo |
Remarks
The valid index ranges from zero through Count-1. Only the HIUPD segments are indexed and available through this indexer, the HIUPA segment is separate.
Exceptions
Type | Condition |
---|---|
System.ArgumentOutOfRangeException | The given index was negative or otehrwise outside the range of available HIUPD segments. |
SepaInfos
List of collected HISPA segments.
Declaration
public IList SepaInfos { get; }
Property Value
Type | Description |
---|---|
System.Collections.IList |
Usage
UPD usage flag from the HIUPA segment.
Declaration
public int Usage { get; }
Property Value
Type | Description |
---|---|
System.Int32 | The value 0 indicates that any transaction types that are not given by the HIUPD segments are not allowed. The value 1 indicates that additional transaction types might be allowed. |
UserID
User ID from the HIUPA segment.
Declaration
public string UserID { get; }
Property Value
Type | Description |
---|---|
System.String |
UserName
Optional user name from HIUPD segment according to FinTS 3.0.
Declaration
public string UserName { get; }
Property Value
Type | Description |
---|---|
System.String | A string with up to 35 characters. If not supplied, then this property is
|
Version
UPD version from the HIUPA segment.
Declaration
public int Version { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
Methods
Clear()
Remove all UPD segments from this UPD Sequence.
Declaration
public void Clear()
FindAccount(FinAcct)
Declaration
public FinAcctInfo FindAccount(FinAcct aAcct)
Parameters
Type | Name | Description |
---|---|---|
FinAcct | aAcct |
Returns
Type | Description |
---|---|
FinAcctInfo |
FindAccount(SepaIBAN, String)
Find the HIUPD segment for a particular account with a given IBAN.
Declaration
public FinAcctInfo FindAccount(SepaIBAN tIBAN, string sCurrency)
Parameters
Type | Name | Description |
---|---|---|
SepaIBAN | tIBAN | The IBAN of the account that is sought. This must not be a null IBAN. |
System.String | sCurrency | The currency of the account that is sought. If this is |
Returns
Type | Description |
---|---|
FinAcctInfo |
Remarks
This method does cannot find portfolio accounts, as these usually do neither have an IBAN nor a currency.
FindAccount(String)
DEPRECTATED: Find first account info with a particular account number.
Declaration
public FinAcctInfo FindAccount(string sAcctNo)
Parameters
Type | Name | Description |
---|---|---|
System.String | sAcctNo | Account number to seek in user parameter data. |
Returns
Type | Description |
---|---|
FinAcctInfo | If the requested account information was found, then its FinAcctInfo
instance is returned. If no matching account was found, then |
Remarks
When comparing account numbers any leding zeroes are ignored.
This method is DEPRECTATED. Please use the overloaded FindAccount(String, String, String, Boolean) instead. The account number alone is not enough to sufficiently determine a particular account.
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | The given sAcctNo parameter was null. |
FindAccount(String, String, String, FinAcctTypeClass)
Find the HIUPD segment for a particular account.
Declaration
public FinAcctInfo FindAccount(string sBankCode, string sAcctNo, string sCurrency, FinAcctTypeClass nAcctTypeClass)
Parameters
Type | Name | Description |
---|---|---|
System.String | sBankCode | The bank code of the account that is sought. If this is |
System.String | sAcctNo | The account number of the account that is sought. This must not be |
System.String | sCurrency | The currency of the account that is sought. If this is |
FinAcctTypeClass | nAcctTypeClass | The class of the account type to be sought. An attempt is made to match this class to the account type of the available accounts. If a perfect match is found, then that account is returned. If no match is found, then the first account where the other criterias are matching is returned. |
Returns
Type | Description |
---|---|
FinAcctInfo |
FindAccount(String, String, String, Boolean)
Find the HIUPD segment for a particular account.
Declaration
public FinAcctInfo FindAccount(string sBankCode, string sAcctNo, string sCurrency, bool fPortfolio)
Parameters
Type | Name | Description |
---|---|---|
System.String | sBankCode | The bank code of the account that is sought. If this is |
System.String | sAcctNo | The account number of the account that is sought. This must not be |
System.String | sCurrency | The currency of the account that is sought. If this is |
System.Boolean | fPortfolio | Must be |
Returns
Type | Description |
---|---|
FinAcctInfo |
FindAccount(String, String, String, String, FinAcctTypeClass)
Find the HIUPD segment for a particular account.
Declaration
public FinAcctInfo FindAccount(string sBankCode, string sAcctNo, string sCurrency, string sSubAcctCharacteristic, FinAcctTypeClass nAcctTypeClass)
Parameters
Type | Name | Description |
---|---|---|
System.String | sBankCode | The bank code of the account that is sought. If this is |
System.String | sAcctNo | The account number of the account that is sought. This must not be |
System.String | sCurrency | The currency of the account that is sought. If this is |
System.String | sSubAcctCharacteristic | If known, the subaccount identifier of the account that is sought. If this is
|
FinAcctTypeClass | nAcctTypeClass | The class of the account type to be sought. An attempt is made to match this class to the account type of the available accounts. If a perfect match is found, then that account is returned. If no match is found, then the first account where the other criterias are matching is returned. |
Returns
Type | Description |
---|---|
FinAcctInfo |
GetEnumerator()
Implements System.Collections.IEnumerable and provides an enumerator that iterates all HIUPD segments as FinAcctInfo instances.
Declaration
public IEnumerator GetEnumerator()
Returns
Type | Description |
---|---|
System.Collections.IEnumerator |
Read(Stream)
Reads a complete user parameter data segment sequence from a given stream.
Declaration
public static FinUserParamData Read(Stream aStream)
Parameters
Type | Name | Description |
---|---|---|
System.IO.Stream | aStream | Input stream that provides the raw user parameter data segment sequence. |
Returns
Type | Description |
---|---|
FinUserParamData | Returns a new instance of the FinUserParamData class initialised with the user parameter data segment sequence from the loaded stream. |
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | Parameter aStream was null. |
Write(Stream)
Writes the complete user parameter data segment sequence to the given stream.
Declaration
public void Write(Stream aStream)
Parameters
Type | Name | Description |
---|---|---|
System.IO.Stream | aStream | Output stream that receives the raw user parameter data segment sequence. |
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | Parameter aStream was null. |