69 lines
2.1 KiB
C#
69 lines
2.1 KiB
C#
using System.Collections.ObjectModel;
|
|
using VisionBuilder.UI.Common.Commands;
|
|
using VisionBuilder.UI.Common.Commands.Interfaces;
|
|
using VisionBuilder.UI.Common.ViewModel.Classes;
|
|
using VisionBuilder.UI.Common.ViewModel.Interfaces.UI;
|
|
|
|
namespace VisionBuilder.UI.Common.ViewModel;
|
|
|
|
public class ErrorsVM:IEventHandler<ImageProcessedEvent>, IEventHandler<SessionStartedEvent>
|
|
{
|
|
private readonly UIConfiguration _uiConfiguration;
|
|
private readonly IImagePreviewService _imagePreviewService;
|
|
private readonly ILearningTool _learningTool;
|
|
|
|
public ErrorsVM(UIConfiguration uiConfiguration, IImagePreviewService imagePreviewService, ILearningTool learningTool)
|
|
{
|
|
_uiConfiguration = uiConfiguration;
|
|
_imagePreviewService = imagePreviewService;
|
|
_learningTool = learningTool;
|
|
}
|
|
|
|
|
|
public ObservableCollection<ErrorData> Errors { get; set; } = new ObservableCollection<ErrorData>();
|
|
|
|
public void ShowImage(ErrorData errorData)
|
|
{
|
|
if (errorData == null) return;
|
|
|
|
var vm = new ErrorPreviewVM(this, errorData, errorData.RecipeName, _uiConfiguration, _learningTool);
|
|
_imagePreviewService.ShowImagePreview(vm);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void Handle(ImageProcessedEvent @event)
|
|
{
|
|
if(!@event.HasError)return;
|
|
|
|
string additionalInfo = string.Empty;
|
|
var errorShortName = _uiConfiguration.ErrorShortNames
|
|
.FirstOrDefault(x => x.FullName == @event.ErrorNames[0]);
|
|
|
|
if (errorShortName != null)
|
|
{
|
|
additionalInfo += " ,"+errorShortName.ShortName;
|
|
}
|
|
|
|
ErrorData errorData = new ErrorData
|
|
{
|
|
RecipeName = @event.RecipeName,
|
|
ImageOriginal = @event.ImageOriginal,
|
|
ImageAnalysis = @event.ImageAnalysis,
|
|
Title =DateTime.Now.ToString("G")+ additionalInfo
|
|
};
|
|
|
|
if (Errors.Count >= _uiConfiguration.MaxErrorCount)
|
|
{
|
|
Errors.RemoveAt(0);
|
|
}
|
|
|
|
Errors.Add(errorData);
|
|
}
|
|
|
|
public void Handle(SessionStartedEvent @event)
|
|
{
|
|
Errors.Clear();
|
|
}
|
|
} |