64 lines
3.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using gehGassi.Dto.Common;
using gehGassiApp.Domain.Advertisements;
using gehGassiApp.Domain.Common;
namespace gehGassiApp.Core.Interfaces
{
/// <summary>
/// Schnittstellenbeschreibung für einen Service der alle Funktionen rund um Werbungen zur Verfügung stellt
/// </summary>
public interface IAdvertisementService
{
/// <summary>
/// Holen der Liste der Werbungs-Kategorien welche online sind
/// </summary>
/// <param name="language">gewünschte Sprache</param>
/// <param name="accessToken">Aktuelles Accesstoken</param>
/// <param name="token">CancellationToken</param>
/// <returns>CommunicationResult</returns>
Task<CommunicationResult<List<AdvertisementCategory>>> GetCategoriesOnlineAsync(string language, string accessToken, CancellationToken token);
/// <summary>
/// Gibt eine Liste von ablaufenden Werbungen zurück, welche in der Nähe sind
/// </summary>
/// <param name="location">Aktuelle Position</param>
/// <param name="take">Wie viele Werbungen sollen abgerufen werden? -1 Wenn nicht anwenden.</param>
/// <param name="skip">Wie viele Werbungen sollen ausgelassen werden? -1 Wenn nicht anwenden.</param>
/// <param name="appMode">Akteuller Modus der App</param>
/// <param name="accessToken">Aktuelles Accesstoken</param>
/// <param name="language">Gewünschte Sprache</param>
/// <param name="token">CancellationToken</param>
/// <returns>ListCommunicationResult</returns>
Task<ListCommunicationResult<List<Advertisement>>> GetAdvertisementsNearEndAsync(LocationDto location, int take, int skip, AppMode appMode, string accessToken, string language, CancellationToken token);
/// <summary>
/// Gibt eine laufende Werbung in gewünschter Sprache zurück
/// </summary>
/// <param name="id">Id der Werbung</param>
/// <param name="language">gewünschte Sprache</param>
/// <param name="accessToken">Aktuelles Accesstoken</param>
/// <param name="token">CancellationToken</param>
/// <returns>CommunicationResult</returns>
Task<CommunicationResult<Advertisement>> GetRunningAsync(string id, string language, string accessToken, CancellationToken token);
/// <summary>
/// Gibt eine Liste von Werbungen nach Kategorie zurück
/// </summary>
/// <param name="categoryId">Id der Kategorie</param>
/// <param name="location">Aktuelle Position</param>
/// <param name="take">Wie viele Werbungen sollen abgerufen werden? -1 Wenn nicht anwenden.</param>
/// <param name="skip">Wie viele Werbungen sollen ausgelassen werden? -1 Wenn nicht anwenden.</param>
/// <param name="appMode">Akteuller Modus der App</param>
/// <param name="accessToken">Aktuelles Accesstoken</param>
/// <param name="language">Gewünschte Sprache</param>
/// <param name="token">CancellationToken</param>
/// <returns>ListCommunicationResult</returns>
Task<ListCommunicationResult<List<Advertisement>>> GetAdvertisementsByCategoryAsync(string categoryId, LocationDto location, int take, int skip, AppMode appMode, string language, string accessToken, CancellationToken token);
}
}