173 lines
12 KiB
C#
173 lines
12 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;
|
|
using gehGassiApp.Domain.Walks;
|
|
|
|
namespace gehGassiApp.Core.Interfaces
|
|
{
|
|
/// <summary>
|
|
/// Schnittsstellenbeschreibung eines Service der die Verwaltung von öffentlichen Anfragen ermöglicht
|
|
/// </summary>
|
|
public interface IPublicWalkRequestService : IService<PublicWalkRequest>, ISyncPushPullService<PublicWalkRequest>
|
|
{
|
|
/// <summary>
|
|
/// Zählt die Anzahl der öffentlichen Anfragen für den aktuellen Benutzer
|
|
/// </summary>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>Anzahl öffentliche Anfragen</returns>
|
|
Task<CommunicationResult<int>> CountPublicWalkRequestsAsync(string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Gibt eine Liste von öffentlichen Anfragen zurück
|
|
/// </summary>
|
|
/// <param name="ignoreId">Id die ignoriert werden soll (DogOwnerId)</param>
|
|
/// <param name="dogOwnerId">Optional: Id des Hundebesitzers</param>
|
|
/// <param name="dogWalkerId">Optional: Id des Hundeausführers</param>
|
|
/// <param name="status">Status der Ausschreibung oder NULL für alle</param>
|
|
/// <param name="sortOrders">Liste von Sortierangaben</param>
|
|
/// <param name="location">Aktuelle Position</param>
|
|
/// <param name="take">Wie viele Listungen sollen abgerufen werden? -1 Wenn nicht anwenden.</param>
|
|
/// <param name="skip">Wie viele Listungen sollen ausgelassen werden? -1 Wenn nicht anwenden.</param>
|
|
/// <param name="appMode">Akteuller Modus der App</param>
|
|
/// <param name="language">Gewählte Sprache</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>ListCommunicationResult</returns>
|
|
Task<ListCommunicationResult<List<PublicWalkRequestWithNames>>> GetAsync(string ignoreId, string dogOwnerId, string dogWalkerId, PublicWalkRequestStatus? status, List<DynamicSortOrder> sortOrders, LocationDto location, int take, int skip, AppMode appMode, string language, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Gibt eine Liste von öffentlichen Anfragen zurück erweitert
|
|
/// </summary>
|
|
/// <param name="ignoreId">Id die ignoriert werden soll (DogOwnerId)</param>
|
|
/// <param name="dogOwnerId">Optional: Id des Hundebesitzers</param>
|
|
/// <param name="dogWalkerId">Optional: Id des Hundeausführers</param>
|
|
/// <param name="status">Status der Ausschreibung oder NULL für alle</param>
|
|
/// <param name="maxRadius">Maximaler Radius</param>
|
|
/// <param name="type">Gesuchter Typ oder NULL für alle</param>
|
|
/// <param name="minPrice">Mindestpreis</param>
|
|
/// <param name="sortOrders">Liste von Sortierangaben</param>
|
|
/// <param name="location">Aktuelle Position</param>
|
|
/// <param name="take">Wie viele Listungen sollen abgerufen werden? -1 Wenn nicht anwenden.</param>
|
|
/// <param name="skip">Wie viele Listungen sollen ausgelassen werden? -1 Wenn nicht anwenden.</param>
|
|
/// <param name="appMode">Akteuller Modus der App</param>
|
|
/// <param name="language">Gewählte Sprache</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>ListCommunicationResult</returns>
|
|
Task<ListCommunicationResult<List<PublicWalkRequestWithNames>>> GetExAsync(string ignoreId, string dogOwnerId, string dogWalkerId, PublicWalkRequestStatus? status, double maxRadius, PublicWalkRequestType? type, decimal minPrice, List<DynamicSortOrder> sortOrders, LocationDto location, int take, int skip, AppMode appMode, string language, string accessToken, CancellationToken token);
|
|
|
|
|
|
/// <summary>
|
|
/// Gibt eine Liste von öffentlichen Anfragen zurück mit einem Antwort-Status für einen DogWalker
|
|
/// </summary>
|
|
/// <param name="ignoreId">Id die ignoriert werden soll (DogOwnerId)</param>
|
|
/// <param name="dogOwnerId">Optional: Id des Hundebesitzers</param>
|
|
/// <param name="dogWalkerId">Optional: Id des Hundeausführers</param>
|
|
/// <param name="status">Status der Ausschreibung oder null für alle</param>
|
|
/// <param name="mustHaveResponse">es muss ein Angebot vom Dogwalker vorhanden sein</param>
|
|
/// <param name="sortOrders">Liste von Sortierangaben</param>
|
|
/// <param name="location">Aktuelle Position</param>
|
|
/// <param name="includeBlockedAndLocked">Sollten blockierte unnd/oder gesperrte Benutzer in die Liste eingefügt werden?</param>
|
|
/// <param name="take">Wie viele Listungen sollen abgerufen werden? -1 Wenn nicht anwenden.</param>
|
|
/// <param name="skip">Wie viele Listungen sollen ausgelassen werden? -1 Wenn nicht anwenden.</param>
|
|
/// <param name="appMode">Akteuller Modus der App</param>
|
|
/// <param name="language">Gewählte Sprache</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <param name="targetDogWalkerId">Id des Dogwalkers der die Anfrage absetzt</param>
|
|
/// <param name="responseStatus">Ziel Response-Status oder Null für alle</param>
|
|
/// <returns>ListCommunicationResult</returns>
|
|
Task<ListCommunicationResult<List<PublicWalkRequestWithNamesAndResponseStatus>>> GetWithResponseStatusAsync(string ignoreId, string dogOwnerId, string dogWalkerId, PublicWalkRequestStatus? status, string targetDogWalkerId, PublicWalkResponseStatus? responseStatus, bool mustHaveResponse, List<DynamicSortOrder> sortOrders, LocationDto location, bool includeBlockedAndLocked, int take, int skip, AppMode appMode, string language, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Gibt eine Liste von öffentlichen Anfragen zurück mit einem Antwort-Status für einen DogWalker mit erweiterten Suchparametern
|
|
/// </summary>
|
|
/// <param name="ignoreId">Id die ignoriert werden soll (DogOwnerId)</param>
|
|
/// <param name="dogOwnerId">Optional: Id des Hundebesitzers</param>
|
|
/// <param name="dogWalkerId">Optional: Id des Hundeausführers</param>
|
|
/// <param name="status">Status der Ausschreibung oder null für alle</param>
|
|
/// <param name="mustHaveResponse">Es muss ein Angebot vom DogWalker vorhanden sein</param>
|
|
/// <param name="searchText">Suchtext in Hundename, Besitzername oder Stadt</param>
|
|
/// <param name="sortOrders">Liste von Sortierangaben</param>
|
|
/// <param name="location">Aktuelle Position</param>
|
|
/// <param name="includeBlockedAndLocked">Sollten blockierte unnd/oder gesperrte Benutzer in die Liste eingefügt werden?</param>
|
|
/// <param name="take">Wie viele Listungen sollen abgerufen werden? -1 Wenn nicht anwenden.</param>
|
|
/// <param name="skip">Wie viele Listungen sollen ausgelassen werden? -1 Wenn nicht anwenden.</param>
|
|
/// <param name="appMode">Akteuller Modus der App</param>
|
|
/// <param name="language">Gewählte Sprache</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <param name="targetDogWalkerId">Id des Dogwalkers der die Anfrage absetzt</param>
|
|
/// <param name="responseStatus">Ziel Response-Status oder Null für alle</param>
|
|
/// <param name="maxRadius">Maximaler Radius</param>
|
|
/// <param name="type">Gesuchter Typ oder null für alle</param>
|
|
/// <param name="minPrice">Mindestpreis</param>
|
|
/// <returns>ListCommunicationResult</returns>
|
|
Task<ListCommunicationResult<List<PublicWalkRequestWithNamesAndResponseStatus>>> GetWithResponseStatusExAsync(string ignoreId, string dogOwnerId, string dogWalkerId, PublicWalkRequestStatus? status, string targetDogWalkerId, PublicWalkResponseStatus? responseStatus, double maxRadius, PublicWalkRequestType? type, decimal minPrice, bool mustHaveResponse, string searchText, List<DynamicSortOrder> sortOrders, LocationDto location, bool includeBlockedAndLocked, int take, int skip, AppMode appMode, string language, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Gibt eine Anzahl von öffentlichen Anfragen zurück, absteigend nach Datum sortiert
|
|
/// </summary>
|
|
/// <param name="take">Wie viele sollen genommen werden?</param>
|
|
/// <returns>Liste von öffntlichen Anfragen</returns>
|
|
Task<List<PublicWalkRequest>> GetLatestAsync(int take);
|
|
|
|
/// <summary>
|
|
/// Gibt eine Anzahl von öffentlichen Anfragen zurück, absteigend nach Datum sortiert
|
|
/// </summary>
|
|
/// <param name="appUserId">Id des App-Users</param>
|
|
/// <param name="language">Gewünschte Sprache</param>
|
|
/// <param name="take">Wie viele sollen genommen werden?</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>Liste von öffntlichen Anfragen</returns>
|
|
Task<List<PublicWalkRequestWithNames>> GetLatestWithNamesAsync(string appUserId, string language, int take, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Gibt eine öffentliche Anfrage zurück
|
|
/// </summary>
|
|
/// <param name="id">Id der Anfrage</param>
|
|
/// <param name="language">Gewünschte Sprache</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>Öffentliche Anfrage oder null, wenn nicht gefunden</returns>
|
|
Task<PublicWalkRequestWithNames> GetWithNamesAsync(string id, string language, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Hinzufügen einer öffentlichen Anfrage
|
|
/// </summary>
|
|
/// <param name="request">Öffentliche Anfrage</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>PublicWalkRequest</returns>
|
|
Task<PublicWalkRequest> AddAsync(PublicWalkRequest request, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Stornieren einer öffentlichen Anfrage
|
|
/// </summary>
|
|
/// <param name="publicWalkRequestId">Id der Öffentliche Anfrage</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>PublicWalkRequest</returns>
|
|
Task<bool> CancelAsync(string publicWalkRequestId, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Akzeptieren eines Angebotes zu einer öffnentlichen Anfrage
|
|
/// </summary>
|
|
/// <param name="publicWalkRequestId">Id der öffentlichen Anfrage</param>
|
|
/// <param name="publicWalkResponseId">Id des akzeptierten Angebotes</param>
|
|
/// <param name="appUserId">Id des Hundebesitzers</param>
|
|
/// <param name="paymentType">Zahlungsart für den Walk</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>Erstellter Walk wenn erfolgreich, false sonst</returns>
|
|
Task<Walk> AcceptResponseAsync(string publicWalkRequestId, string publicWalkResponseId, string appUserId, WalkPaymentType? paymentType, string accessToken, CancellationToken token);
|
|
}
|
|
}
|