using System.Windows.Media; using Azaion.Common.Database; namespace Azaion.Common.DTO; public class AnnotationResult { public Annotation Annotation { get; set; } public List<(Color Color, double Confidence)> Colors { get; private set; } public string ImagePath { get; set; } public string TimeStr { get; set; } public string ClassName { get; set; } public AnnotationResult(Dictionary allDetectionClasses, Annotation annotation) { Annotation = annotation; TimeStr = $"{annotation.Time:h\\:mm\\:ss}"; ImagePath = annotation.ImagePath; var detectionClasses = annotation.Detections.Select(x => x.ClassNumber).Distinct().ToList(); Colors = annotation.Detections .Select(d => (allDetectionClasses[d.ClassNumber].Color, d.Confidence)) .ToList(); ClassName = detectionClasses.Count > 1 ? string.Join(", ", detectionClasses.Select(x => allDetectionClasses[x].UIName)) : allDetectionClasses[detectionClasses.FirstOrDefault()].UIName; } }