using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassiApp.Core.Interfaces.Synchronization; using gehGassiApp.Domain.Users; namespace gehGassiApp.Core.Interfaces { /// /// Schnittestellenbeschreibung für einen Service der die Verwaltung von Walker-Profilen ermöglicht /// public interface IWalkerProfileService : IService, ISyncPushPullService { /// /// Gibt das aktuelle Walkerprofil zurück. /// /// DogWalkerProfile oder null wenn nicht gefunden Task GetAsync(); /// /// Gibt das aktuelle Walkerprofil zurück. /// Versucht auch online - wenn lokal nicht vorhanden /// /// Aktuelles Accesstoken /// CancellationToken /// Wenn true, wird in jedem Fall die Online-Abfrage verwendet /// DogWalkerProfile oder null wenn nicht gefunden Task GetAsync(string accessToken, CancellationToken token, bool forceOnline); /// /// Hinzufügen oder aktualisieren eines Walkerprofils /// /// Walker-Profil /// AppUser Task CreateOrUpdateAsync(DogWalkerProfile walkerProfile); /// /// Aktualisieren eines Walker-Profils. /// Online wird versucht. Wenn nicht möglich wird ein Delta erstellt. /// /// Walker-Profil /// Aktuelles Accesstoken /// CancellationToken /// DogWalkerProfile Task UpdateAsync(DogWalkerProfile walkerProfile, string accessToken, CancellationToken token); } }