using System.Collections.Generic; using System.Data; 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; } } public interface IBulkSaver { DataTable PrepareBulkInsert(List databaseEntities); } }