From 8508efd281845a33fb5bf0ae9531b20d32923de1 Mon Sep 17 00:00:00 2001 From: chrisK00 <72318023+chrisK00@users.noreply.github.com> Date: Thu, 30 May 2024 18:51:39 +0200 Subject: [PATCH] #173 missed payments (#176) --- .github/workflows/dotnet.yml | 4 +-- docs/roadmap.drawio | 7 ++-- docs/roadmap.png | Bin 54683 -> 55556 bytes .../Android/NotifyDueSubscriptionsJob.cs | 32 ++++++++++++++---- subtrack.MAUI/Utilities/DateTimeExtensions.cs | 3 +- subtrack.MAUI/Utilities/NotificationsUtil.cs | 2 ++ 6 files changed, 36 insertions(+), 12 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index c37f981..2c8aa22 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -12,7 +12,7 @@ on: jobs: build: - runs-on: windows-2022 + runs-on: windows-latest steps: - uses: actions/setup-java@v2 @@ -25,7 +25,7 @@ jobs: uses: actions/setup-dotnet@v3 with: dotnet-version: 8.0.x - + - name: Restore workload run: dotnet workload restore diff --git a/docs/roadmap.drawio b/docs/roadmap.drawio index 943783d..4093039 100644 --- a/docs/roadmap.drawio +++ b/docs/roadmap.drawio @@ -1,6 +1,6 @@ - + @@ -163,9 +163,12 @@ - + + + + diff --git a/docs/roadmap.png b/docs/roadmap.png index 8be35d4aa452a5bc5db39f24597733e6e7d9d51f..3eecdfe6efc27b5a5377835bc73f02fc5a570c27 100644 GIT binary patch delta 35662 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

~)B6{Q1b(xV0gB1AV>dXFX5z#Hq@6q!ni59r~W( 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 E09xn_Bme*a diff --git a/subtrack.MAUI/Services/Android/NotifyDueSubscriptionsJob.cs b/subtrack.MAUI/Services/Android/NotifyDueSubscriptionsJob.cs index 1077f17..a54ceca 100644 --- a/subtrack.MAUI/Services/Android/NotifyDueSubscriptionsJob.cs +++ b/subtrack.MAUI/Services/Android/NotifyDueSubscriptionsJob.cs @@ -49,7 +49,12 @@ public async Task Run(JobInfo jobInfo, CancellationToken cancellationToken) if (lastSubscriptionReminderTimeStamp.Value?.Date != today) { - await NotifyDueSubscriptionsJob.RunInternal(serviceProvider, today); + var subscriptionService = serviceProvider.GetRequiredService(); + var subscriptionsCalculator = serviceProvider.GetRequiredService(); + + var subscriptions = await subscriptionService.GetAllAsync(); + await NotifyUpcomingPayments(subscriptions, today, subscriptionsCalculator); + await NotifyMissedPaymentsAsync(subscriptions, subscriptionsCalculator, today); lastSubscriptionReminderTimeStamp.Value = now; await settingsService.UpdateAsync(lastSubscriptionReminderTimeStamp); @@ -62,12 +67,8 @@ public async Task Run(JobInfo jobInfo, CancellationToken cancellationToken) } } - private static async Task RunInternal(IServiceProvider serviceProvider, DateTime today) + private static async Task NotifyUpcomingPayments(IEnumerable subscriptions, DateTime today, ISubscriptionsCalculator subscriptionsCalculator) { - var subscriptionService = serviceProvider.GetRequiredService(); - var subscriptionsCalculator = serviceProvider.GetRequiredService(); - - var subscriptions = await subscriptionService.GetAllAsync(); var subscriptionsWithNotificationsEnabled = subscriptions.Where(x => x.NotificationDays.HasValue).ToList(); if (!subscriptionsWithNotificationsEnabled.Any()) { @@ -76,7 +77,7 @@ private static async Task RunInternal(IServiceProvider serviceProvider, DateTime await NotificationsUtil.EnsureNotificationsAreEnabled(); - var notificationGroup = today.Day.ToString(); + var notificationGroup = $"upcoming {today.Day}"; subscriptionsWithNotificationsEnabled.ForEach(sub => { var dueDate = subscriptionsCalculator.GetNextPaymentDate(sub); @@ -90,6 +91,23 @@ private static async Task RunInternal(IServiceProvider serviceProvider, DateTime }); } + private static async Task NotifyMissedPaymentsAsync(IEnumerable subscriptions, ISubscriptionsCalculator subscriptionsCalculator, DateTime today) + { + if (!await NotificationsUtil.HasEnabledNotifications()) + { + return; + } + + foreach (var sub in subscriptions) + { + var dueDate = subscriptionsCalculator.GetNextPaymentDate(sub); + if (dueDate.IsPastDate(today)) + { + SendNotification(sub.Id, $"Missed payment for {sub.Name}", $"missed {today.Day}"); + } + } + } + private static string GetDueDaysText(int dueDays) { return dueDays switch diff --git a/subtrack.MAUI/Utilities/DateTimeExtensions.cs b/subtrack.MAUI/Utilities/DateTimeExtensions.cs index 33f1354..c9d6d7b 100644 --- a/subtrack.MAUI/Utilities/DateTimeExtensions.cs +++ b/subtrack.MAUI/Utilities/DateTimeExtensions.cs @@ -6,7 +6,8 @@ public static class DateTimeExtensions { public static TimeSpan TimeRemainingFromToday(this DateTime date, IDateProvider dateTimeProvider) => date.Subtract(dateTimeProvider.Today); - public static bool IsPastDate(this DateTime date, IDateProvider dateTimeProvider) => date < dateTimeProvider.Today; + public static bool IsPastDate(this DateTime date, IDateProvider dateTimeProvider) => IsPastDate(date, dateTimeProvider.Today); + public static bool IsPastDate(this DateTime date, DateTime today) => date < today; public static DateTime AddWeeks(this DateTime date, int weeks) => date.AddDays(weeks * 7); diff --git a/subtrack.MAUI/Utilities/NotificationsUtil.cs b/subtrack.MAUI/Utilities/NotificationsUtil.cs index 007a4ac..3f8f4cf 100644 --- a/subtrack.MAUI/Utilities/NotificationsUtil.cs +++ b/subtrack.MAUI/Utilities/NotificationsUtil.cs @@ -11,4 +11,6 @@ public static async Task EnsureNotificationsAreEnabled() await LocalNotificationCenter.Current.RequestNotificationPermission(); } } + + public static async Task HasEnabledNotifications() => await LocalNotificationCenter.Current.AreNotificationsEnabled(); }