59 lines
2.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using gehGassiApp.Core.Interfaces.Synchronization;
using gehGassiApp.Domain.Walkers;
namespace gehGassiApp.Core.Interfaces
{
/// <summary>
/// Schnittstellenbeschreibung für einen Service der die Verfügbarkeit eines Walkers für Walks je wochentag ermöglicht
/// </summary>
public interface IWalkingTimeService : IService<WalkingTime>, ISyncPushPullService<WalkingTime>
{
/// <summary>
/// Gibt eine Liste aller WalkingTimes eines DogWalkers zurück
/// </summary>
/// <param name="dogWalkerId">Id des DogWalkers</param>
/// <param name="forceOnline">Unbedingt online versuchen</param>
/// <param name="accessToken">Aktuelles Accesstoken</param>
/// <param name="token">CancellationToken</param>
/// <returns>CommunicationResult</returns>
Task<CommunicationResult<List<WalkingTime>>> GetAllAsync(string dogWalkerId, bool forceOnline, string accessToken, CancellationToken token);
/// <summary>
/// Hinzufügen einer WalkingTime
/// </summary>
/// <param name="dogWalkerId">Id des Dogwalkers</param>
/// <param name="day">Wochentag</param>
/// <param name="start">Startzeit</param>
/// <param name="end">Endzeit</param>
/// <param name="enabled">Aktiv</param>
/// <param name="accessToken">Aktuelles Accesstoken</param>
/// <param name="token">CancellationToken</param>
/// <returns>WalkingTime</returns>
Task<WalkingTime> AddAsync(string dogWalkerId, DayOfWeek day, TimeSpan start, TimeSpan end, bool enabled, string accessToken, CancellationToken token);
/// <summary>
/// Aktualisieren einer WalkingTime
/// </summary>
/// <param name="walkingTime">WalkingTime</param>
/// <param name="accessToken">Aktuelles Accesstoken</param>
/// <param name="token">CancellationToken</param>
/// <returns>True wenn erfolgreich, false sonst</returns>
Task<bool> UpdateAsync(WalkingTime walkingTime, string accessToken, CancellationToken token);
/// <summary>
/// Echtes Löschen einer WalkingTime
/// </summary>
/// <param name="walkingTimeId">Id der WalkingTime</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 walkingTimeId, string appUserId, string accessToken, CancellationToken token);
}
}