57 lines
1.9 KiB
C#
57 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
|
|
namespace bsmd.database
|
|
{
|
|
/// <summary>
|
|
/// Dieses Interface wird von DatabaseEntities implementiert, die 1:n Sublisten haben, m
|
|
/// mit anderen Worten, alles, was n-fach vorkommen kann
|
|
/// </summary>
|
|
public interface ISublistContainer
|
|
{
|
|
|
|
ISublistElement GetSublistElementWithIdentifier(string identifier);
|
|
|
|
/// <summary>
|
|
/// Liefert die maximale Anzahl an Excelzeilen, die für das n-fache Element eingelesen werden
|
|
/// sollen. TODO: Das könnte ggf auch an Bord geändert werden?, wird aber i.d.R. über die Names-Konvention
|
|
/// definiert. d.h. wenn keine passenden Name-Ranges angegeben sind wird das ohnehin nicht eingelesen werden
|
|
/// können
|
|
/// </summary>
|
|
int NumberOfExcelRows { get; }
|
|
|
|
/// <summary>
|
|
/// Ruft die Speicherfunktion für alle untergeordneten Elemente (rekursiv) auf
|
|
/// </summary>
|
|
void SaveElements();
|
|
|
|
/// <summary>
|
|
/// Löscht die untergeordneten Objekte
|
|
/// </summary>
|
|
void DeleteElements();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Dieses Interface kennzeichnet die Merkmale eines Sublisten-Elements
|
|
/// </summary>
|
|
public interface ISublistElement : IComparable
|
|
{
|
|
/// <summary>
|
|
/// Mit diesem Schlüssel kann bei einem Report die richtige Beschriftung aus der SQLite Tabelle geholt werden
|
|
/// </summary>
|
|
string SublistCollectionKey { get; }
|
|
|
|
/// <summary>
|
|
/// Der "eindeutige" Schlüssel des Listenelements. Hier steht immer eine als String serialiserte Zahl drin
|
|
/// </summary>
|
|
string Identifier { get; set; }
|
|
}
|
|
|
|
public interface IBulkSaver
|
|
{
|
|
DataTable PrepareBulkInsert(List<DatabaseEntity> databaseEntities);
|
|
}
|
|
|
|
}
|