using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using gehGassiApp.Domain.Common;
using gehGassiApp.Domain.Lookup;
using gehGassiApp.Domain.News;
namespace gehGassiApp.Core.Interfaces
{
///
/// Schnittstellenbeschreibung für einen Service der Lookups durchführen kann
///
public interface ILookupService
{
///
/// Gibt eine Liste von dogOwnern und/oder DogWalkern für einen Lookup zurück
///
/// Filter
/// Anzahl max. Datensätze
/// Aktuelles Accesstoken
/// CancellationToken
/// ListCommunicationResult
Task>> GetEntitiesAsync(string filter, int take, string accessToken, CancellationToken token);
///
/// Gibt eine Liste von Dogwalkern mit Distanz zur aktuellen Position zurück
///
/// Id die ignoriert werden soll falls der Benutzer DogOwner und DogWalker ist
/// Breitengrad
/// Längengrad
/// Anzahl Walker gewünscht
/// Aktuelles Accesstoken
/// CancellationToken
/// CommunicationResult
Task>> GetWalkersAsync(string ignoreId, double lat, double lng, int take, string accessToken, CancellationToken token);
///
/// Gibt Detailinfos zu einem DogWalker zurück
///
/// Id des Dogwalkers
/// Aktuelles Accesstoken
/// CancellationToken
/// CommunicationResult
Task> GetWalkerAsync(string dogWalkerId, string accessToken, CancellationToken token);
}
}