83 lines
3.8 KiB
C#
83 lines
3.8 KiB
C#
using gehGassiApp.Core.Interfaces.Synchronization;
|
|
using gehGassiApp.Domain.Messages;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using gehGassiApp.Domain.Lookup;
|
|
|
|
namespace gehGassiApp.Core.Interfaces
|
|
{
|
|
/// <summary>
|
|
/// Schnittstellenbeschreibung für einen Service der die Verwaltung von Konversationen ermöglicht
|
|
/// </summary>
|
|
public interface IConversationService : IService<Conversation>, ISyncPushPullService<Conversation>
|
|
{
|
|
/// <summary>
|
|
/// Anlegen einer Konversation
|
|
/// </summary>
|
|
/// <param name="senderId">Sender, falls online gesucht werden muss</param>
|
|
/// <param name="receipient">Empfänger nach welcher gesucht wird</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>CommunicationResult</returns>
|
|
Task<CommunicationResult<Conversation>> CreateAsync(string senderId, AppUserLookup receipient, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Anlegen einer Konversation
|
|
/// </summary>
|
|
/// <param name="senderId">Sender, falls online gesucht werden muss</param>
|
|
/// <param name="receipientId">Id des Emprängers</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>CommunicationResult</returns>
|
|
Task<CommunicationResult<Conversation>> CreateAsync(string senderId, string receipientId, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Gibt eine Liste der Konversationen zurück
|
|
/// </summary>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <param name="senderId">Id des Senders</param>
|
|
/// <returns>Liste Konversatinen</returns>
|
|
Task<List<Conversation>> GetConversationsAsync(string senderId, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Gibt eine Liste der Konversationen zurück
|
|
/// </summary>
|
|
/// <param name="filter">Filter</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <param name="senderId">Id des Senders</param>
|
|
/// <returns>Liste Konversatinen</returns>
|
|
Task<List<Conversation>> GetConversationsAsync(string senderId, string filter, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Gibt eine Konversation zurück welche ein bestimmtes Ziel hat
|
|
/// </summary>
|
|
/// <param name="senderId">Sender, falls online gesucht werden muss</param>
|
|
/// <param name="receipientId">EmpfängerId nach welcher gesucht wird</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns></returns>
|
|
Task<Conversation> GetByReceipientAsync(string senderId, string receipientId, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Setzen der letzten Nachricht für eine Konversation
|
|
/// </summary>
|
|
/// <param name="conversationId">Id der Konversation</param>
|
|
/// <param name="messageId">Id der letzten Nachricht</param>
|
|
/// <param name="messagePreview">Vorschautext der letzten Nachricht</param>
|
|
/// <param name="lastUpdate">Datum letztes Update</param>
|
|
/// <returns>Task</returns>
|
|
Task SetLastMessageAsync(string conversationId, string messageId, string messagePreview, DateTimeOffset lastUpdate);
|
|
|
|
/// <summary>
|
|
/// Gibt zurück ob es Konversationen mit ungelesenen nachrichten gibt
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
Task<bool> HasUnreadAsync();
|
|
}
|
|
}
|