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.Common; namespace gehGassiApp.Core.Interfaces { /// /// Schnittstellenbeschreibung für einen Service der die Verwaltung von Ratings ermöglicht /// public interface IRatingService : IService, ISyncPushPullService { /// /// Erstellen eines Ratings /// /// Rating Create(); /// /// Gibt ein Rating basierend auf Abfragekriterien zurück /// /// Id des Bewerters /// Typ des Bewertes /// Id des Bewertungsziels /// Typ des Bewertungsziels /// Aktuelles Accesstoken /// CancellationToken /// true wenn bereits bewertet, false sonst Task GetRatingEx(string fromId, AppUserType fromType, string targetId, RatingTarget targetType, string accessToken, CancellationToken token); /// /// Gibt ein Rating basierend auf der ID zurück /// /// Id des Ratings /// Aktuelles Accesstoken /// CancellationToken /// CommunicationResult Task GetRatingAsync(string ratingId, string accessToken, CancellationToken token); /// /// Hinzufügen eines Ratings /// /// Rating /// Aktuelles Accesstoken /// CancellationToken /// Angelegtes Rating Task AddAsync(Rating rating, string accessToken, CancellationToken token); /// /// Aktualisieren eines Ratings /// /// Rating /// Aktuelles Accesstoken /// CancellationToken /// true wenn erfolgreich, false sonst Task UpdateAsync(Rating rating, string accessToken, CancellationToken token); /// /// Echtes Löschen eines Ratings - wird derzeit nicht verwendet! /// Bitte Rating auf deleted setzen und UPDATE /// /// Id des Ratings /// Id des AppBenutzers /// Aktuelles Accesstoken /// CancellationToken /// true wenn erfolgreich, false sonst Task DeleteAsync(string ratingId, string appUserId, string accessToken, CancellationToken token); /// /// Wurde bereits eine Bewertung vorgenommen? /// /// Id des Bewerters /// Typ des Bewertes /// Id des Bewertungsziels /// Typ des Bewertungsziels /// Aktuelles Accesstoken /// CancellationToken /// true wenn bereits bewertet, false sonst Task HasRatedAsync(string fromId, AppUserType fromType, string targetId, RatingTarget targetType, string accessToken, CancellationToken token); /// /// Kann eine Bewertung vorgenommen werden? /// /// Id des Bewerters /// Typ des Bewertes /// Id des Bewertungsziels /// Typ des Bewertungsziels /// Aktuelles Accesstoken /// CancellationToken /// true wennmöglich, false sonst Task CanRateAsync(string fromId, AppUserType fromType, string targetId, RatingTarget targetType, string accessToken, CancellationToken token); /// /// Abrufen einer Liste von Ratings /// /// Quelle Id /// Quelle Typ /// Ziel Id /// Ziel Typ /// Liste von Sortierangaben /// Gewünschte Sprache /// Aktueller appMode /// Aktuelle Position /// Wie viele Walks sollen abgerufen werden? -1 Wenn nicht anwenden. /// Wie viele Walks sollen ausgelassen werden? -1 Wenn nicht anwenden. /// Aktuelles Accesstoken /// CancellationToken /// ListCommunicationResult Task>> GetRatingsAsync(string fromId, AppUserType? fromType, string targetId, RatingTarget? targetType, List sortOrders, string language, AppMode appMode, LocationDto locaton, int take, int skip, string accessToken, CancellationToken token); } }