using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassi.Dto.Common; using gehGassiApp.Core.Interfaces.Synchronization; using gehGassiApp.Domain.Favourites; namespace gehGassiApp.Core.Interfaces { /// /// Schnittstellenbeschreibung für einen Service der die Verwaltung von Favoriten ermöglicht /// public interface IFavouriteService : IService, ISyncPushPullService { /// /// Erstellen eines Favoriten /// /// Favourite Favourite Create(); /// /// Hinzufügen eines Favoriten /// /// Favourite /// Aktuelles Accesstoken /// CancellationToken /// Angelegter Favorit Task AddAsync(Favourite favourite, string accessToken, CancellationToken token); /// /// Aktualisieren eines Favoriten /// /// Favourite /// Aktuelles Accesstoken /// CancellationToken /// true wenn erfolgreich, false sonst Task UpdateAsync(Favourite favourite, string accessToken, CancellationToken token); /// /// Echtes Löschen eines Favoriten /// /// Id des Favoriten /// Id des AppBenutzers /// Aktuelles Accesstoken /// CancellationToken /// true wenn erfolgreich, false sonst Task DeleteAsync(string favouriteId, string appUserId, string accessToken, CancellationToken token); /// /// Prüfen ob ein Objekt ein Favorit ist. Prüft nur Lokal! /// /// Id des Objekts /// Typ des Objekts /// true wenn ein Favorit, false sonst Task IsFavouriteLocalAsync(string key, string table); /// /// Toggeln des Favoriten-Status eines Objektes. /// Entweder wird der Favorit angelegt, oder gelöscht /// /// Id des Objekts /// Typ des Objekts /// Id des AppUsers /// Aktuelles Accesstoken /// CancellationToken /// true wenn erfolgreich, false sonst Task ToggleAsync(string key, string table, string appUserId, string accessToken, CancellationToken token); /// /// Gibt eine Liste von Favoriten für eine Objektklasse für einen Benutzer zurück /// /// Gewünschtes Objekt /// Aktuelle Position /// Gewünschte Sprache /// Aktuelles Accesstoken /// CancellationToken /// Id des AppUsers /// ListCommunicationResult Task>> GetListAsync(string appUserId, string table, LocationDto location, string language, string accessToken, CancellationToken token); } }