using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace bsmd.database
{
///
/// Dieses Interface wird von DatabaseEntities implementiert, die 1:n Sublisten haben, m
/// mit anderen Worten, alles, was n-fach vorkommen kann
///
public interface ISublistContainer
{
ISublistElement GetSublistElementWithIdentifier(string identifier);
///
/// 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
///
int NumberOfExcelRows { get; }
///
/// Ruft die Speicherfunktion für alle untergeordneten Elemente (rekursiv) auf
///
void SaveElements();
///
/// Löscht die untergeordneten Objekte
///
void DeleteElements();
}
///
/// Dieses Interface kennzeichnet die Merkmale eines Sublisten-Elements
///
public interface ISublistElement
{
///
/// Mit diesem Schlüssel kann bei einem Report die richtige Beschriftung aus der SQLite Tabelle geholt werden
///
string SublistCollectionKey { get; }
///
/// Der "eindeutige" Schlüssel des Listenelements. Hier steht immer eine als String serialiserte Zahl drin
///
string Identifier { get; set; }
}
}