Browse Source

Load state in notifier worker.

pull/925/head
Sebastian 3 years ago
parent
commit
3c4f786eaa
  1. 9
      backend/src/Squidex.Domain.Apps.Entities/Billing/UsageNotifierWorker.cs
  2. 9
      backend/tests/Squidex.Domain.Apps.Entities.Tests/Billing/UsageNotifierWorkerTest.cs

9
backend/src/Squidex.Domain.Apps.Entities/Billing/UsageNotifierWorker.cs

@ -7,6 +7,7 @@
using NodaTime;
using Squidex.Domain.Apps.Entities.Notifications;
using Squidex.Hosting;
using Squidex.Infrastructure;
using Squidex.Infrastructure.States;
using Squidex.Messaging;
@ -14,7 +15,7 @@ using Squidex.Shared.Users;
namespace Squidex.Domain.Apps.Entities.Billing
{
public sealed class UsageNotifierWorker : IMessageHandler<UsageTrackingCheck>
public sealed class UsageNotifierWorker : IMessageHandler<UsageTrackingCheck>, IInitializable
{
private static readonly TimeSpan TimeBetweenNotifications = TimeSpan.FromDays(3);
private readonly SimpleState<State> state;
@ -42,6 +43,12 @@ namespace Squidex.Domain.Apps.Entities.Billing
state = new SimpleState<State>(persistenceFactory, GetType(), DomainId.Create("Default"));
}
public Task InitializeAsync(
CancellationToken ct)
{
return state.LoadAsync(ct);
}
public async Task HandleAsync(UsageTrackingCheck notification,
CancellationToken ct)
{

9
backend/tests/Squidex.Domain.Apps.Entities.Tests/Billing/UsageNotifierWorkerTest.cs

@ -46,6 +46,15 @@ namespace Squidex.Domain.Apps.Entities.Billing
};
}
[Fact]
public async Task Should_load_on_initialize()
{
await sut.InitializeAsync(default);
A.CallTo(() => state.Persistence.ReadAsync(EtagVersion.Any, default))
.MustHaveHappened();
}
[Fact]
public async Task Should_not_send_notification_if_not_active()
{

Loading…
Cancel
Save