mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 22:16:30 +00:00
fde9a9f418
also restrict detections to be no bigger than in classes.json
31 lines
1.1 KiB
C#
31 lines
1.1 KiB
C#
using Azaion.Common.Database;
|
|
using Azaion.Common.DTO;
|
|
using Azaion.Common.Events;
|
|
using MediatR;
|
|
using MessagePack;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace Azaion.Common.Services.Inference;
|
|
|
|
public class InferenceServiceEventHandler(IInferenceService inferenceService, IAnnotationService annotationService, IMediator mediator) :
|
|
INotificationHandler<InferenceDataEvent>,
|
|
INotificationHandler<InferenceStatusEvent>,
|
|
INotificationHandler<InferenceDoneEvent>
|
|
{
|
|
|
|
public async Task Handle(InferenceDataEvent e, CancellationToken ct)
|
|
{
|
|
var annotation = await annotationService.SaveAnnotation(e.AnnotationImage, ct);
|
|
await mediator.Publish(new AnnotationAddedEvent(annotation), ct);
|
|
}
|
|
|
|
public async Task Handle(InferenceStatusEvent e, CancellationToken ct)
|
|
{
|
|
await mediator.Publish(new SetStatusTextEvent($"{e.MediaName}: {e.DetectionsCount} detections"), ct);
|
|
}
|
|
|
|
public async Task Handle(InferenceDoneEvent notification, CancellationToken cancellationToken)
|
|
{
|
|
await inferenceService.InferenceCancelTokenSource.CancelAsync();
|
|
}
|
|
} |