Skip to content

Commit

Permalink
Add Subscription Trigger notification handler + cleanup subscriptions (
Browse files Browse the repository at this point in the history
…#323)

Co-authored-by: Louis-Axel Ambroise <ambroise.la@gmail.com>
  • Loading branch information
louisaxel-ambroise and devhoid authored Feb 13, 2021
1 parent 0c1053a commit e82fdbc
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using MediatR;

namespace FasTnT.Domain.Commands.Requests
namespace FasTnT.Domain.Notifications
{
public class TriggerSubscriptionNotification : INotification
{
Expand Down
2 changes: 1 addition & 1 deletion src/FasTnT.Host/Controllers/v1_2/SubscriptionController.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using FasTnT.Domain.Commands.Requests;
using FasTnT.Domain.Notifications;
using MediatR;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
Expand Down
24 changes: 24 additions & 0 deletions src/FasTnT.Subscriptions/Handlers/SubscriptionTriggerHandler.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using FasTnT.Domain.Notifications;
using MediatR;
using System.Threading;
using System.Threading.Tasks;

namespace FasTnT.Subscriptions.Handlers
{
public class SubscriptionTriggerHandler : INotificationHandler<TriggerSubscriptionNotification>
{
private readonly SubscriptionBackgroundService _service;

public SubscriptionTriggerHandler(SubscriptionBackgroundService service)
{
_service = service;
}

public Task Handle(TriggerSubscriptionNotification notification, CancellationToken cancellationToken)
{
_service.Trigger(notification.Name);

return Task.CompletedTask;
}
}
}
7 changes: 3 additions & 4 deletions src/FasTnT.Subscriptions/HttpSubscriptionResultSender.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

namespace FasTnT.Subscriptions
{

public class HttpSubscriptionResultSender : ISubscriptionResultSender
{
public async Task<bool> Send(string destination, IEpcisResponse epcisResponse, CancellationToken cancellationToken)
Expand All @@ -23,7 +22,7 @@ public async Task<bool> Send(string destination, IEpcisResponse epcisResponse, C
return await SendRequestAsync(request, cancellationToken);
}

private async Task<bool> SendRequestAsync(HttpWebRequest request, CancellationToken cancellationToken)
private static async Task<bool> SendRequestAsync(HttpWebRequest request, CancellationToken cancellationToken)
{
var requestWasSent = default(bool);

Expand All @@ -43,7 +42,7 @@ private async Task<bool> SendRequestAsync(HttpWebRequest request, CancellationTo
return requestWasSent;
}

private async Task WriteRequestPayload(HttpWebRequest request, IEpcisResponse epcisResponse, CancellationToken cancellationToken)
private static async Task WriteRequestPayload(HttpWebRequest request, IEpcisResponse epcisResponse, CancellationToken cancellationToken)
{
using var stream = await request.GetRequestStreamAsync();
var formatter = new XmlCommandFormatter();
Expand All @@ -52,7 +51,7 @@ private async Task WriteRequestPayload(HttpWebRequest request, IEpcisResponse ep
await formatter.WriteResponse(epcisResponse, stream, cancellationToken);
}

private void TrySetBasicAuthorization(HttpWebRequest request)
private static void TrySetBasicAuthorization(HttpWebRequest request)
{
if (!string.IsNullOrEmpty(request.RequestUri.UserInfo))
{
Expand Down
4 changes: 2 additions & 2 deletions src/FasTnT.Subscriptions/SubscriptionBackgroundService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ protected override Task ExecuteAsync(CancellationToken cancellationToken)
WaitTillNextExecutionOrNotification();
}
}
});
}, cancellationToken);
}

private async Task Execute(IEnumerable<Subscription> subscriptions, CancellationToken cancellationToken)
Expand Down Expand Up @@ -154,7 +154,7 @@ private void WaitTillNextExecutionOrNotification()
}
}

private TimeSpan GetNextExecutionWaitTime(DateTime executionTime)
private static TimeSpan GetNextExecutionWaitTime(DateTime executionTime)
=> executionTime < DateTime.UtcNow ? TimeSpan.Zero : executionTime - DateTime.UtcNow;
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using FasTnT.Domain.Commands.Requests;
using FasTnT.Domain.Notifications;
using FasTnT.Host.Controllers.v1_2;
using MediatR;
using Microsoft.VisualStudio.TestTools.UnitTesting;
Expand Down

0 comments on commit e82fdbc

Please sign in to comment.