84 lines
3.7 KiB
C#
84 lines
3.7 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// Schnittstellenbeschreibung für einen Service der die Verwaltung von Favoriten ermöglicht
|
|
/// </summary>
|
|
public interface IFavouriteService : IService<Favourite>, ISyncPushPullService<Favourite>
|
|
{
|
|
/// <summary>
|
|
/// Erstellen eines Favoriten
|
|
/// </summary>
|
|
/// <returns>Favourite</returns>
|
|
Favourite Create();
|
|
|
|
/// <summary>
|
|
/// Hinzufügen eines Favoriten
|
|
/// </summary>
|
|
/// <param name="favourite">Favourite</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>Angelegter Favorit</returns>
|
|
Task<Favourite> AddAsync(Favourite favourite, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Aktualisieren eines Favoriten
|
|
/// </summary>
|
|
/// <param name="favourite">Favourite</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>true wenn erfolgreich, false sonst</returns>
|
|
Task<bool> UpdateAsync(Favourite favourite, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Echtes Löschen eines Favoriten
|
|
/// </summary>
|
|
/// <param name="favouriteId">Id des Favoriten</param>
|
|
/// <param name="appUserId">Id des AppBenutzers</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>true wenn erfolgreich, false sonst</returns>
|
|
Task<bool> DeleteAsync(string favouriteId, string appUserId, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Prüfen ob ein Objekt ein Favorit ist. Prüft nur Lokal!
|
|
/// </summary>
|
|
/// <param name="key">Id des Objekts</param>
|
|
/// <param name="table">Typ des Objekts</param>
|
|
/// <returns>true wenn ein Favorit, false sonst</returns>
|
|
Task<bool> IsFavouriteLocalAsync(string key, string table);
|
|
|
|
/// <summary>
|
|
/// Toggeln des Favoriten-Status eines Objektes.
|
|
/// Entweder wird der Favorit angelegt, oder gelöscht
|
|
/// </summary>
|
|
/// <param name="key">Id des Objekts</param>
|
|
/// <param name="table">Typ des Objekts</param>
|
|
/// <param name="appUserId">Id des AppUsers</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>true wenn erfolgreich, false sonst</returns>
|
|
Task<bool> ToggleAsync(string key, string table, string appUserId, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Gibt eine Liste von Favoriten für eine Objektklasse für einen Benutzer zurück
|
|
/// </summary>
|
|
/// <param name="table">Gewünschtes Objekt</param>
|
|
/// <param name="location">Aktuelle Position</param>
|
|
/// <param name="language">Gewünschte Sprache</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <param name="appUserId">Id des AppUsers</param>
|
|
/// <returns>ListCommunicationResult</returns>
|
|
Task<CommunicationResult<List<FavouriteListItem>>> GetListAsync(string appUserId, string table, LocationDto location, string language, string accessToken, CancellationToken token);
|
|
}
|
|
}
|