46 lines
2.0 KiB
C#

using Microsoft.Extensions.Options;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace gehGassi.LocalNotifications
{
public interface INotificationService
{
event NotificationTappedEventHandler OnNotificationTapped;
event NotificationReceivedEventHandler OnNotificationReceived;
Task<List<NotificationRequest>> GetPendingNotificationRequestsAsync();
Task CancelAsync(int notificationId);
Task CancelAllAsync();
/// <summary>
/// Notification anzeigen
/// </summary>
Task ShowAsync(int notificationId, string title, string description, string payload, AndroidOptions androidOptions = null, IosOptions iOSOptions = null);
/// <summary>
/// Anzeige einer Benachrichtigung in einem stündlichen Intervall (einmal pro Stunde)
/// </summary>
Task ShowHourlyAsync(int notificationId, string title, string description, Time time, string payload, AndroidOptions androidOptions = null, IosOptions iOSOptions = null);
/// <summary>
/// Täglich eine Benachrichtigung anzeigen ( Einmal pro Tag )
/// </summary>
Task ShowDailyAsync(int notificationId, string title, string description, Time time, string payload, AndroidOptions androidOptions = null, IosOptions iOSOptions = null);
/// <summary>
/// Anzeige einer Benachrichtigung in einem wöchentlichen Intervall (einmal pro Woche)
/// </summary>
Task ShowWeeklyAsync(int notificationId, string title, string description, Day weekDay, Time time, string payload, AndroidOptions androidOptions = null, IosOptions iOSOptions = null);
/// <summary>
/// Legt fest, dass eine Benachrichtigung zum angegebenen Zeitpunkt angezeigt wird
/// </summary>
Task ScheduleAsync(int notificationId, string title, string description, DateTime dateTime, string payload, AndroidOptions androidOptions = null, IosOptions iOSOptions = null);
}
}