90 lines
3.4 KiB
C#
90 lines
3.4 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// Schnittstellenbeschreibung für einen Service der die Verwaltung von Push Synch-Infos ermöglicht.
|
|
/// </summary>
|
|
public interface ISyncInfoPushService : IService<SyncInfoPush>
|
|
{
|
|
/// <summary>
|
|
/// Hinzufügen eines Push-Deltas
|
|
/// </summary>
|
|
/// <typeparam name="T">Typ des Objekts</typeparam>
|
|
/// <param name="table">Name der Tabelle = nameof(objekt)</param>
|
|
/// <param name="key">ID des Objektes als string</param>
|
|
/// <param name="operation">Operationstyp. Hinzufügen, Aktualisieren, Löschen</param>
|
|
/// <param name="value">Objekt das Serialisiert werden soll</param>
|
|
/// <returns>SyncInfoPush</returns>
|
|
Task<SyncInfoPush> AddAsync<T>(string table, string key, SyncOperation operation, T value);
|
|
|
|
/// <summary>
|
|
/// Gibt eine Liste aller offenen SyncInfoPushs einer Tabelle zurück
|
|
/// </summary>
|
|
/// <param name="table">Tabelle = nameof(objcet)</param>
|
|
/// <param name="noTracking">Gibt an ob NoTRacking verwendet werden soll. Es werden keine Entitäten im EF-Speicher gehalten</param>
|
|
/// <returns>Liste von SyncInfoPushs</returns>
|
|
Task<List<SyncInfoPush>> GetAllAsync(string table, bool noTracking = true);
|
|
|
|
/// <summary>
|
|
/// Entfernen einer SyncInfoPush
|
|
/// </summary>
|
|
/// <param name="id">Eindeutige Id</param>
|
|
/// <returns>Task</returns>
|
|
Task RemoveAsync(Guid id);
|
|
|
|
/// <summary>
|
|
/// Entfernen einer SyncInfoPush
|
|
/// </summary>
|
|
/// <param name="item">SyncInfoPush</param>
|
|
/// <returns>Task</returns>
|
|
Task RemoveAsync(SyncInfoPush item);
|
|
|
|
/// <summary>
|
|
/// Löschen aller Sync-Infos
|
|
/// </summary>
|
|
/// <returns>Task</returns>
|
|
Task RemoveAllAsync();
|
|
|
|
/// <summary>
|
|
/// Löschen aller Sync-Infos
|
|
/// </summary>
|
|
/// <param name="before">Datum vor welchem alle Sync-Infos gelöscht werden sollen</param>
|
|
/// <returns>Task</returns>
|
|
Task RemoveAllAsync(DateTimeOffset before);
|
|
|
|
/// <summary>
|
|
/// Löschen aller Sync-Infos einer Tabelle
|
|
/// </summary>
|
|
/// <param name="table">Tabelle = nameof(objcet)</param>
|
|
/// <returns>Task</returns>
|
|
Task RemoveAllAsync(string table);
|
|
|
|
/// <summary>
|
|
/// Löschen aller Sync-Infos einer Tabelle
|
|
/// </summary>
|
|
/// <param name="table">Tabelle = nameof(objcet)</param>
|
|
/// <param name="before">Datum vor welchem alle Sync-Infos gelöscht werden sollen</param>
|
|
/// <returns>Task</returns>
|
|
Task RemoveAllAsync(string table, DateTimeOffset before);
|
|
|
|
/// <summary>
|
|
/// Gibt zurück ob offene Push-Infos anliegen
|
|
/// </summary>
|
|
/// <returns>Anzahl offene Push-Infos</returns>
|
|
Task<int> HasOpenAsync();
|
|
|
|
/// <summary>
|
|
/// Gibt zurück ob für eine Tabelle offene Push-Infos anliegen
|
|
/// </summary>
|
|
/// <param name="table">Tabelle = nameof(objcet)</param>
|
|
/// <returns>Anzahl offene Push-Infos</returns>
|
|
Task<int> HasOpenAsync(string table);
|
|
}
|
|
}
|