Добавьте файлы проекта.
This commit is contained in:
40
SQLVision.Visualizers/Factories/VisualizerFactory.cs
Normal file
40
SQLVision.Visualizers/Factories/VisualizerFactory.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using SQLVision.Core.Enums;
|
||||
using SQLVision.Visualizers.Interfaces;
|
||||
using SQLVision.Visualizers.Visualizers;
|
||||
|
||||
namespace SQLVision.Visualizers.Factories;
|
||||
|
||||
public class VisualizerFactory : IVisualizerFactory
|
||||
{
|
||||
private readonly Dictionary<OutputType, IVisualizer> _visualizers;
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
|
||||
public VisualizerFactory(IServiceProvider serviceProvider)
|
||||
{
|
||||
_serviceProvider = serviceProvider;
|
||||
_visualizers = new Dictionary<OutputType, IVisualizer>
|
||||
{
|
||||
[OutputType.Table] = new TableVisualizer(),
|
||||
[OutputType.Chart] = new ChartVisualizer(),
|
||||
[OutputType.Text] = new TextVisualizer(),
|
||||
[OutputType.Grid] = new TableVisualizer(), // Пока используем TableVisualizer
|
||||
[OutputType.Custom] = new TableVisualizer() // Fallback
|
||||
};
|
||||
}
|
||||
|
||||
public IVisualizer GetVisualizer(OutputType type)
|
||||
{
|
||||
if (_visualizers.TryGetValue(type, out var visualizer))
|
||||
{
|
||||
return visualizer;
|
||||
}
|
||||
|
||||
// Fallback на табличный визуализатор
|
||||
return _visualizers[OutputType.Table];
|
||||
}
|
||||
|
||||
public void RegisterVisualizer(OutputType type, IVisualizer visualizer)
|
||||
{
|
||||
_visualizers[type] = visualizer;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user