Show / Hide Table of Contents

Interface IBank

Provides abstraction for Global Database Bank instance

Inherited Members
INamed.Name
Namespace: NFX.DataAccess.Distributed
Assembly: NFX.dll
Syntax
public interface IBank : INamed

Properties

Areas

Returns registry of named bank schema area instances

Declaration
IRegistry<IAreaInstance> Areas { get; }
Property Value
Type Description
IRegistry<IAreaInstance>

DataStore

References data store that this data bank is a part of

Declaration
IDistributedDataStore DataStore { get; }
Property Value
Type Description
IDistributedDataStore

Description

Returns database description

Declaration
string Description { get; }
Property Value
Type Description
System.String

IDGenerator

Returns sequence provider that generates unique identifiers in the store

Declaration
IGDIDProvider IDGenerator { get; }
Property Value
Type Description
IGDIDProvider

Schema

Returns the schema that this bank implements

Declaration
ISchema Schema { get; }
Property Value
Type Description
ISchema

Methods

GenerateReplicationVersionInfo(Parcel)

Generates version replication information for the parcel instance which is being sealed

Declaration
IReplicationVersionInfo GenerateReplicationVersionInfo(Parcel parcel)
Parameters
Type Name Description
Parcel parcel
Returns
Type Description
IReplicationVersionInfo

GetDescription(String)

Returns database description for the specific culture. This method is needed because end users may need to see the description of the database instance in their native language

Declaration
string GetDescription(string culture)
Parameters
Type Name Description
System.String culture
Returns
Type Description
System.String

Load(Type, GDID, Object, DataVeracity, DataCaching, Nullable<Int32>, ISession)

Loads parcel by fetching it from the bank backened by its primary id

Declaration
Parcel Load(Type tParcel, GDID id, object shardingID = null, DataVeracity veracity = DataVeracity.Maximum, DataCaching cacheOpt = DataCaching.LatestData, int ? cacheMaxAgeSec = default (int ? ), ISession session = null)
Parameters
Type Name Description
System.Type tParcel

Parcel type to load

GDID id

The unique GDID of the parcel

System.Object shardingID

The ID of the entity used for sharding, i.e. a message may use ID of the item that the message relates to, so messages get sharded in the same location as their "parent" record. The parcel type T specifies the DataParcelAttirbute.GetParcelAttr(typeof(T)).ShardingParcel

DataVeracity veracity

The level of data veracity

DataCaching cacheOpt

The cache control options

System.Nullable<System.Int32> cacheMaxAgeSec

The maximum acceptable age of cached instance, cached data will be re-queried from backend if it is older

ISession session

User session, if null session will be taken from execution context. The session may be needed for policy filtering

Returns
Type Description
Parcel

Load<T>(GDID, Object, DataVeracity, DataCaching, Nullable<Int32>, ISession)

Loads parcel by fetching it from the bank backened by its primary id

Declaration
T Load<T>(GDID id, object shardingID = null, DataVeracity veracity = DataVeracity.Maximum, DataCaching cacheOpt = DataCaching.LatestData, int ? cacheMaxAgeSec = default (int ? ), ISession session = null)where T : Parcel
Parameters
Type Name Description
GDID id

The unique GDID of the parcel

System.Object shardingID

The ID of the entity used for sharding, i.e. a message may use ID of the item that the message relates to, so messages get sharded in the same location as their "parent" record. The parcel type T specifies the DataParcelAttirbute.GetParcelAttr(typeof(T)).ShardingParcel

DataVeracity veracity

The level of data veracity

DataCaching cacheOpt

The cache control options

System.Nullable<System.Int32> cacheMaxAgeSec

The maximum acceptable age of cached instance, cached data will be re-queried from backend if it is older

ISession session

User session, if null session will be taken from execution context. The session may be needed for policy filtering

Returns
Type Description
T
Type Parameters
Name Description
T

LoadAsync(Type, GDID, Object, DataVeracity, DataCaching, Nullable<Int32>, ISession)

Async version: Loads parcel by fetching it from the bank backened by its primary id

Declaration
Task<Parcel> LoadAsync(Type tParcel, GDID id, object shardingID = null, DataVeracity veracity = DataVeracity.Maximum, DataCaching cacheOpt = DataCaching.LatestData, int ? cacheMaxAgeSec = default (int ? ), ISession session = null)
Parameters
Type Name Description
System.Type tParcel

Parcel type to load

GDID id

The unique GDID of the parcel

System.Object shardingID

The ID of the entity used for sharding, i.e. a message may use ID of the item that the message relates to, so messages get sharded in the same location as their "parent" record. The parcel type T specifies the DataParcelAttirbute.GetParcelAttr(typeof(T)).ShardingParcel

DataVeracity veracity

The level of data veracity

DataCaching cacheOpt

The cache control options

System.Nullable<System.Int32> cacheMaxAgeSec

The maximum acceptable age of cached instance, cached data will be re-queried from backend if it is older

ISession session

User session, if null session will be taken from execution context. The session may be needed for policy filtering

Returns
Type Description
System.Threading.Tasks.Task<Parcel>

LoadAsync<T>(GDID, Object, DataVeracity, DataCaching, Nullable<Int32>, ISession)

Async version: Loads parcel by fetching it from the bank backened by its primary id

Declaration
Task<T> LoadAsync<T>(GDID id, object shardingID = null, DataVeracity veracity = DataVeracity.Maximum, DataCaching cacheOpt = DataCaching.LatestData, int ? cacheMaxAgeSec = default (int ? ), ISession session = null)where T : Parcel
Parameters
Type Name Description
GDID id

The unique GDID of the parcel

System.Object shardingID

The ID of the entity used for sharding, i.e. a message may use ID of the item that the message relates to, so messages get sharded in the same location as their "parent" record. The parcel type T specifies the DataParcelAttirbute.GetParcelAttr(typeof(T)).ShardingParcel

DataVeracity veracity

The level of data veracity

DataCaching cacheOpt

The cache control options

System.Nullable<System.Int32> cacheMaxAgeSec

The maximum acceptable age of cached instance, cached data will be re-queried from backend if it is older

ISession session

User session, if null session will be taken from execution context. The session may be needed for policy filtering

Returns
Type Description
System.Threading.Tasks.Task<T>
Type Parameters
Name Description
T

ObjectToShardingID(Object)

Returns ULONG for an object so any object (i.e. a string) may be used as a sharding key. Suppose a string needs to be used for sharding, this method translates a string into a 64 bit hash expressed as ulong

Declaration
ulong ObjectToShardingID(object key)
Parameters
Type Name Description
System.Object key

An object used for sharding ID translation

Returns
Type Description
System.UInt64

UInt64 that represents the sharding ID

Query(Command, DataVeracity, DataCaching, Nullable<Int32>, ISession)

Loads result object by executing a query command in the bank backend fetching necessary parcels/records/documents and aggregating the result. The query may return parcel/s that can be modified and saved back into the store

Declaration
object Query(Command command, DataVeracity veracity = DataVeracity.Maximum, DataCaching cacheOpt = DataCaching.LatestData, int ? cacheMaxAgeSec = default (int ? ), ISession session = null)
Parameters
Type Name Description
Command command

The command object that contains command name and parameters to query the datastore

DataVeracity veracity

The level of data veracity

DataCaching cacheOpt

The cache control options

System.Nullable<System.Int32> cacheMaxAgeSec

The maximum acceptable age of cached instance, cached data will be re-queried from backend if it is older

ISession session

User session, if null session will be taken from execution context. The session may be needed for policy filtering

Returns
Type Description
System.Object

QueryAsync(Command, DataVeracity, DataCaching, Nullable<Int32>, ISession)

Async version: Loads result object by executing a query command in the bank backend fetching necessary parcels/records/documents and aggregating the result. The query may return parcel/s that can be modified and saved back into the store

Declaration
Task<object> QueryAsync(Command command, DataVeracity veracity = DataVeracity.Maximum, DataCaching cacheOpt = DataCaching.LatestData, int ? cacheMaxAgeSec = default (int ? ), ISession session = null)
Parameters
Type Name Description
Command command

The command object that contains command name and parameters to query the datastore

DataVeracity veracity

The level of data veracity

DataCaching cacheOpt

The cache control options

System.Nullable<System.Int32> cacheMaxAgeSec

The maximum acceptable age of cached instance, cached data will be re-queried from backend if it is older

ISession session

User session, if null session will be taken from execution context. The session may be needed for policy filtering

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

Remove(Type, GDID, Object, ISession)

Removes the parcel from the bank returning true if parcel was found and removed

Declaration
bool Remove(Type tParcel, GDID id, object shardingID = null, ISession session = null)
Parameters
Type Name Description
System.Type tParcel

Type of parcel to remove

GDID id

The unique GDID of the parcel

System.Object shardingID

The ID of the entity used for sharding, i.e. a message may use ID of the item that the message relates to, so messages get sharded in the same location as their "parent" record. The parcel type T specifies the DataParcelAttirbute.ShardingParcel

ISession session

User session, if null session will be taken from execution context. The session may be needed for policy filtering

Returns
Type Description
System.Boolean

Remove<T>(GDID, Object, ISession)

Removes the parcel from the bank returning true if parcel was found and removed

Declaration
bool Remove<T>(GDID id, object shardingID = null, ISession session = null)where T : Parcel
Parameters
Type Name Description
GDID id

The unique GDID of the parcel

System.Object shardingID

The ID of the entity used for sharding, i.e. a message may use ID of the item that the message relates to, so messages get sharded in the same location as their "parent" record. The parcel type T specifies the DataParcelAttirbute.ShardingParcel

ISession session

User session, if null session will be taken from execution context. The session may be needed for policy filtering

Returns
Type Description
System.Boolean
Type Parameters
Name Description
T

RemoveAsync(Type, GDID, Object, ISession)

Async version: Removes the parcel from the bank returning true if parcel was found and removed

Declaration
Task<bool> RemoveAsync(Type tParcel, GDID id, object shardingID = null, ISession session = null)
Parameters
Type Name Description
System.Type tParcel

Type of parcel to remove

GDID id

The unique GDID of the parcel

System.Object shardingID

The ID of the entity used for sharding, i.e. a message may use ID of the item that the message relates to, so messages get sharded in the same location as their "parent" record. The parcel type T specifies the DataParcelAttirbute.ShardingParcel

ISession session

User session, if null session will be taken from execution context. The session may be needed for policy filtering

Returns
Type Description
System.Threading.Tasks.Task<System.Boolean>

RemoveAsync<T>(GDID, Object, ISession)

Async version: Removes the parcel from the bank returning true if parcel was found and removed

Declaration
Task<bool> RemoveAsync<T>(GDID id, object shardingID = null, ISession session = null)where T : Parcel
Parameters
Type Name Description
GDID id

The unique GDID of the parcel

System.Object shardingID

The ID of the entity used for sharding, i.e. a message may use ID of the item that the message relates to, so messages get sharded in the same location as their "parent" record. The parcel type T specifies the DataParcelAttirbute.ShardingParcel

ISession session

User session, if null session will be taken from execution context. The session may be needed for policy filtering

Returns
Type Description
System.Threading.Tasks.Task<System.Boolean>
Type Parameters
Name Description
T

Save(Parcel, DataCaching, Nullable<Int32>, Nullable<Int32>, Nullable<DateTime>, ISession)

Saves/sends the parcel into this bank

Declaration
void Save(Parcel parcel, DataCaching cacheOpt = DataCaching.Everywhere, int ? cachePriority = default (int ? ), int ? cacheMaxAgeSec = default (int ? ), DateTime? cacheAbsoluteExpirationUTC = default (DateTime? ), ISession session = null)
Parameters
Type Name Description
Parcel parcel

parcel instance to save

DataCaching cacheOpt

The cache control options

System.Nullable<System.Int32> cachePriority

The relative priority of the item in cache. If null is passed then the value is obtained from the parcel instance

System.Nullable<System.Int32> cacheMaxAgeSec

Specifies the duration of parcel lifespan in cache devices. If null is passed then the value is obtained from the parcel instance

System.Nullable<System.DateTime> cacheAbsoluteExpirationUTC

Specifies absolute expiration time for this parcel instance in cache. If null is passed then the value is obtained from the parcel instance

ISession session

User session, if null session will be taken from execution context. The session may be needed for policy filtering

SaveAsync(Parcel, DataCaching, Nullable<Int32>, Nullable<Int32>, Nullable<DateTime>, ISession)

Async version: Saves/sends the parcel into this bank

Declaration
Task SaveAsync(Parcel parcel, DataCaching cacheOpt = DataCaching.Everywhere, int ? cachePriority = default (int ? ), int ? cacheMaxAgeSec = default (int ? ), DateTime? cacheAbsoluteExpirationUTC = default (DateTime? ), ISession session = null)
Parameters
Type Name Description
Parcel parcel

parcel instance to save

DataCaching cacheOpt

The cache control options

System.Nullable<System.Int32> cachePriority

The relative priority of the item in cache. If null is passed then the value is obtained from the parcel instance

System.Nullable<System.Int32> cacheMaxAgeSec

Specifies the duration of parcel lifespan in cache devices. If null is passed then the value is obtained from the parcel instance

System.Nullable<System.DateTime> cacheAbsoluteExpirationUTC

Specifies absolute expiration time for this parcel instance in cache. If null is passed then the value is obtained from the parcel instance

ISession session

User session, if null session will be taken from execution context. The session may be needed for policy filtering

Returns
Type Description
System.Threading.Tasks.Task

Extension Methods

MiscUtils.NonNull<T>(T, Func<Exception>, String)
ObjectValueConversion.AsString(Object, String, ConvertErrorHandling)
ObjectValueConversion.AsNonNullOrEmptyString(Object)
ObjectValueConversion.AsLaconicConfig(Object, ConfigSectionNode, String, ConvertErrorHandling)
ObjectValueConversion.AsJSONConfig(Object, ConfigSectionNode, String, ConvertErrorHandling)
ObjectValueConversion.AsXMLConfig(Object, ConfigSectionNode, ConvertErrorHandling)
ObjectValueConversion.AsChar(Object, Char, ConvertErrorHandling)
ObjectValueConversion.AsNullableChar(Object, Nullable<Char>, ConvertErrorHandling)
ObjectValueConversion.AsByte(Object, Byte, ConvertErrorHandling)
ObjectValueConversion.AsNullableByte(Object, Nullable<Byte>, ConvertErrorHandling)
ObjectValueConversion.AsSByte(Object, SByte, ConvertErrorHandling)
ObjectValueConversion.AsNullableSByte(Object, Nullable<SByte>, ConvertErrorHandling)
ObjectValueConversion.AsShort(Object, Int16, ConvertErrorHandling)
ObjectValueConversion.AsNullableShort(Object, Nullable<Int16>, ConvertErrorHandling)
ObjectValueConversion.AsUShort(Object, UInt16, ConvertErrorHandling)
ObjectValueConversion.AsNullableUShort(Object, Nullable<UInt16>, ConvertErrorHandling)
ObjectValueConversion.AsInt(Object, Int32, ConvertErrorHandling)
ObjectValueConversion.AsNullableInt(Object, Nullable<Int32>, ConvertErrorHandling)
ObjectValueConversion.AsUInt(Object, UInt32, ConvertErrorHandling)
ObjectValueConversion.AsNullableUInt(Object, Nullable<UInt32>, ConvertErrorHandling)
ObjectValueConversion.AsLong(Object, Int64, ConvertErrorHandling)
ObjectValueConversion.AsNullableLong(Object, Nullable<Int64>, ConvertErrorHandling)
ObjectValueConversion.AsULong(Object, UInt64, ConvertErrorHandling)
ObjectValueConversion.AsNullableULong(Object, Nullable<UInt64>, ConvertErrorHandling)
ObjectValueConversion.AsDouble(Object, Double, ConvertErrorHandling)
ObjectValueConversion.AsNullableDouble(Object, Nullable<Double>, ConvertErrorHandling)
ObjectValueConversion.AsFloat(Object, Single, ConvertErrorHandling)
ObjectValueConversion.AsNullableFloat(Object, Nullable<Single>, ConvertErrorHandling)
ObjectValueConversion.AsDecimal(Object, Decimal, ConvertErrorHandling)
ObjectValueConversion.AsNullableDecimal(Object, Nullable<Decimal>, ConvertErrorHandling)
ObjectValueConversion.AsBool(Object, Boolean, ConvertErrorHandling)
ObjectValueConversion.AsNullableBool(Object, Nullable<Boolean>, ConvertErrorHandling)
ObjectValueConversion.AsGUID(Object, Guid, ConvertErrorHandling)
ObjectValueConversion.AsNullableGUID(Object, Nullable<Guid>, ConvertErrorHandling)
ObjectValueConversion.AsDateTime(Object)
ObjectValueConversion.AsDateTime(Object, DateTime, ConvertErrorHandling)
ObjectValueConversion.AsNullableDateTime(Object, Nullable<DateTime>, ConvertErrorHandling)
ObjectValueConversion.AsGDID(Object)
ObjectValueConversion.AsGDID(Object, GDID, ConvertErrorHandling)
ObjectValueConversion.AsNullableGDID(Object, Nullable<GDID>, ConvertErrorHandling)
ObjectValueConversion.AsGDIDSymbol(Object)
ObjectValueConversion.AsGDIDSymbol(Object, GDIDSymbol, ConvertErrorHandling)
ObjectValueConversion.AsNullableGDIDSymbol(Object, Nullable<GDIDSymbol>, ConvertErrorHandling)
ObjectValueConversion.AsTimeSpan(Object)
ObjectValueConversion.AsTimeSpan(Object, TimeSpan, ConvertErrorHandling)
ObjectValueConversion.AsNullableTimeSpan(Object, Nullable<TimeSpan>, ConvertErrorHandling)
ObjectValueConversion.AsEnum<TEnum>(Object, TEnum, ConvertErrorHandling)
ObjectValueConversion.AsNullableEnum<TEnum>(Object, Nullable<TEnum>, ConvertErrorHandling)
ObjectValueConversion.AsUri(Object, Uri, ConvertErrorHandling)
JSONExtensions.ToJSON(Object, JSONWritingOptions)
JSONExtensions.ToJSON(Object, TextWriter, JSONWritingOptions)
JSONExtensions.ToJSON(Object, Stream, JSONWritingOptions, Encoding)
ErlObject.ToErlObject(Object)
ErlObject.ToErlObject(Object, ErlTypeOrder, Boolean)
Back to top Copyright © 2006-2018 Agnicore Inc
Generated by DocFX