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