gehgassi_app/gehGassiApp/gehGassiApp.Core/Interfaces/ILocalPushNotificationService.cs

93 lines
4.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using gehGassiApp.Domain.Common;
using gehGassiApp.Domain.Walks;
namespace gehGassiApp.Core.Interfaces
{
/// <summary>
/// Schnittstellenbeschreibung für einen Service der die Verwaltung von lokalen Push-Nachrichten ermöglicht
/// </summary>
public interface ILocalPushNotificationService
{
/// <summary>
/// Hinzufügen einer Erinnerung für einen Walk
/// </summary>
/// <param name="appMode">Modus für die app</param>
/// <param name="walk">Walk für den eine Erinnerung erstellt werden soll</param>
/// <param name="titleStart">Titel der für die Start-Erinnerung angezeigt werden soll</param>
/// <param name="descriptionStart">Beschreibung die für die Start-Erinnerung angezeigt werden soll</param>
/// <param name="titleEnd">Titel der für die End-Erinnerung angezeigt werden soll</param>
/// <param name="descriptionEnd">Beschreibung die für die End-Erinnerung angezeigt werden soll</param>
/// <returns>Task</returns>
Task AddReminderAsycn(AppMode appMode, Walk walk, string titleStart, string descriptionStart, string titleEnd, string descriptionEnd);
/// <summary>
/// Hinzufügen einer Erinnerung für einen Walk
/// </summary>
/// <param name="appMode">Modus für die app</param>
/// <param name="walk">Walk für den eine Erinnerung erstellt werden soll</param>
/// <param name="titleStart">Titel der für die Start-Erinnerung angezeigt werden soll</param>
/// <param name="descriptionStart">Beschreibung die für die Start-Erinnerung angezeigt werden soll</param>
/// <param name="titleEnd">Titel der für die End-Erinnerung angezeigt werden soll</param>
/// <param name="descriptionEnd">Beschreibung die für die End-Erinnerung angezeigt werden soll</param>
/// <returns>Task</returns>
Task AddReminderAsycn(AppMode appMode, WalkWithNames walk, string titleStart, string descriptionStart, string titleEnd, string descriptionEnd);
/// <summary>
/// Hinzufügen einer Erinnerung für eine Öffentliche Anfrage
/// </summary>
/// <param name="appMode">Modus für die app</param>
/// <param name="reuqest">Öffentliche Anfrage für die eine Erinnerung erstellt werden soll</param>
/// <param name="title">Titel der für die Erinnerung angezeigt werden soll</param>
/// <param name="description">Beschreibung die für die Erinnerung angezeigt werden soll</param>
/// <param name="notifyTime">Wann soll die Erinnerung angezeigt werden?</param>
/// <returns>Task</returns>
Task AddReminderAsycn(AppMode appMode, PublicWalkRequest reuqest, string title, string description, DateTime notifyTime);
/// <summary>
/// Stornieren einer Erinnerung
/// </summary>
/// <param name="id">Id der Erinnerung</param>
/// <returns>true wenn erfolgreich, false sonst</returns>
Task<bool> CancelAsync(int id);
/// <summary>
/// Löschen aller Notifications
/// </summary>
/// <returns>Task</returns>
Task RemoveAllAsync();
/// <summary>
/// Entfernen von Notifications die abgelaufen sind und eventuell nicht angezeigt wurden
/// </summary>
/// <returns>Anzahl entfernte Requests</returns>
Task<int> RemoveOutdatedAsync();
/// <summary>
/// Gibt zurück ob für eine Id schon eine Notification existiert
/// </summary>
/// <param name="notificationId">Id der Notification</param>
/// <returns>true wenn existiert, false sonst</returns>
Task<bool> NotificationExistsAsync(int notificationId);
/// <summary>
/// Hinzufügen einer Erinnerung für einen Walk der noch nicht abgeschlossen wurde.
/// </summary>
/// <param name="appMode">Modus für die app</param>
/// <param name="walk">Walk für den eine Erinnerung erstellt werden soll</param>
/// <param name="title">Titel der angezeigt werden soll</param>
/// <param name="description">Beschreibung die angezeigt werden soll</param>
/// <param name="minutesToAdd">Minuten die hinzugefügt werden sollen, damit nicht alle gleichzeitig kommen</param>
/// <returns>Task</returns>
Task AddCompleteReminderAsycn(AppMode appMode, Walk walk, string title, string description, int minutesToAdd);
Task TestWalkAsycn(AppMode appMode, Walk walk, string title, string description, DateTime notifyTime);
Task TestPublicWalkRequestAsycn(AppMode appMode, PublicWalkRequest request, string title, string description, DateTime notifyTime);
}
}