From 490e90f239295a52fbdfd6149bc11eaca91da328 Mon Sep 17 00:00:00 2001 From: Alex Bezdieniezhnykh Date: Thu, 21 Nov 2024 16:38:45 +0200 Subject: [PATCH] fix bugs --- Azaion.Dataset/DatasetExplorerEventHandler.cs | 6 ++++-- Azaion.Dataset/GalleryManager.cs | 15 ++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Azaion.Dataset/DatasetExplorerEventHandler.cs b/Azaion.Dataset/DatasetExplorerEventHandler.cs index c5acacf..0b8e39d 100644 --- a/Azaion.Dataset/DatasetExplorerEventHandler.cs +++ b/Azaion.Dataset/DatasetExplorerEventHandler.cs @@ -69,8 +69,10 @@ public class DatasetExplorerEventHandler(DatasetExplorer datasetExplorer, IGalle } } - public Task Handle(ImageCreatedEvent notification, CancellationToken cancellationToken) + public async Task Handle(ImageCreatedEvent imageCreatedEvent, CancellationToken cancellationToken) { - throw new NotImplementedException(); + var (thumbnailDto, detections) = await galleryManager.CreateThumbnail(imageCreatedEvent.ImagePath, cancellationToken); + if (thumbnailDto != null && detections != null) + datasetExplorer.AddThumbnail(thumbnailDto, detections); } } diff --git a/Azaion.Dataset/GalleryManager.cs b/Azaion.Dataset/GalleryManager.cs index 76495c1..1f5c960 100644 --- a/Azaion.Dataset/GalleryManager.cs +++ b/Azaion.Dataset/GalleryManager.cs @@ -30,7 +30,7 @@ public class GalleryManager( private readonly AnnotationConfig _annotationConfig = annotationConfig.Value; private readonly string _thumbnailsCacheFile = Path.Combine(directoriesConfig.Value.ThumbnailsDirectory, Constants.THUMBNAILS_CACHE_FILE); - public event ThumbnailsUpdatedEventHandler ThumbnailsUpdate; + public event ThumbnailsUpdatedEventHandler? ThumbnailsUpdate; private readonly SemaphoreSlim _updateLock = new(1); @@ -125,7 +125,7 @@ public class GalleryManager( await File.WriteAllTextAsync(_thumbnailsCacheFile, labelsCacheStr); } - public async Task CreateThumbnail(string imgPath, CancellationToken cancellationToken = default) + public async Task<(ThumbnailDto? thumbnailDto, List? classes)> CreateThumbnail(string imgPath, CancellationToken cancellationToken = default) { try { @@ -149,7 +149,7 @@ public class GalleryManager( { File.Delete(imgPath); logger.LogInformation($"No labels found for image {imgName}! Image deleted!"); - return null; + return (null, null); } var labels = (await YoloLabel.ReadFromFile(labelName, cancellationToken)) @@ -209,18 +209,19 @@ public class GalleryManager( var thumbnailName = Path.Combine(ThumbnailsDirectory.FullName, $"{Path.GetFileNameWithoutExtension(imgPath)}{Constants.THUMBNAIL_PREFIX}.jpg"); bitmap.Save(thumbnailName, ImageFormat.Jpeg); - return new ThumbnailDto + var thumbnailDto = new ThumbnailDto { ThumbnailPath = thumbnailName, ImagePath = imgPath, LabelPath = labelName, ImageDate = File.GetCreationTimeUtc(imgPath) }; + return (thumbnailDto, classes); } catch (Exception e) { logger.LogError(e, e.Message); - return null; + return (null, null); } } @@ -241,12 +242,12 @@ public class GalleryManager( public interface IGalleryManager { - event ThumbnailsUpdatedEventHandler ThumbnailsUpdate; + event ThumbnailsUpdatedEventHandler? ThumbnailsUpdate; double ThumbnailsPercentage { get; set; } Task SaveLabelsCache(); LabelInfo AddToCache(string imgPath, List classes); ConcurrentDictionary LabelsCache { get; set; } - Task CreateThumbnail(string imgPath, CancellationToken cancellationToken = default); + Task<(ThumbnailDto? thumbnailDto, List? classes)> CreateThumbnail(string imgPath, CancellationToken cancellationToken = default); Task RefreshThumbnails(); void ClearThumbnails(); } \ No newline at end of file