93 lines
4.7 KiB
C#
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);
|
|
}
|
|
}
|