using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassiApp.Domain.Common; namespace gehGassiApp.Core.Interfaces.Synchronization { /// /// Schnittstellenbeschreibung für einen Service der die Verwaltung von Push Synch-Infos ermöglicht. /// public interface ISyncInfoPushService : IService { /// /// Hinzufügen eines Push-Deltas /// /// Typ des Objekts /// Name der Tabelle = nameof(objekt) /// ID des Objektes als string /// Operationstyp. Hinzufügen, Aktualisieren, Löschen /// Objekt das Serialisiert werden soll /// SyncInfoPush Task AddAsync(string table, string key, SyncOperation operation, T value); /// /// Gibt eine Liste aller offenen SyncInfoPushs einer Tabelle zurück /// /// Tabelle = nameof(objcet) /// Gibt an ob NoTRacking verwendet werden soll. Es werden keine Entitäten im EF-Speicher gehalten /// Liste von SyncInfoPushs Task> GetAllAsync(string table, bool noTracking = true); /// /// Entfernen einer SyncInfoPush /// /// Eindeutige Id /// Task Task RemoveAsync(Guid id); /// /// Entfernen einer SyncInfoPush /// /// SyncInfoPush /// Task Task RemoveAsync(SyncInfoPush item); /// /// Löschen aller Sync-Infos /// /// Task Task RemoveAllAsync(); /// /// Löschen aller Sync-Infos /// /// Datum vor welchem alle Sync-Infos gelöscht werden sollen /// Task Task RemoveAllAsync(DateTimeOffset before); /// /// Löschen aller Sync-Infos einer Tabelle /// /// Tabelle = nameof(objcet) /// Task Task RemoveAllAsync(string table); /// /// Löschen aller Sync-Infos einer Tabelle /// /// Tabelle = nameof(objcet) /// Datum vor welchem alle Sync-Infos gelöscht werden sollen /// Task Task RemoveAllAsync(string table, DateTimeOffset before); /// /// Gibt zurück ob offene Push-Infos anliegen /// /// Anzahl offene Push-Infos Task HasOpenAsync(); /// /// Gibt zurück ob für eine Tabelle offene Push-Infos anliegen /// /// Tabelle = nameof(objcet) /// Anzahl offene Push-Infos Task HasOpenAsync(string table); } }