Files
GSS2Rework/GSS2/DependencyInjectionHelper.cs
T

51 lines
2.3 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using GSS2.UI.Core.Services;
using GSS2.Views;
using GSS2.ViewModels;
namespace GSS2;
public static class DependencyInjectionHelper
{
public static IServiceCollection AddViewsAndModels(this IServiceCollection services) =>
services
.AddSingleton<DependencyInjectionViewLocator>((services) =>
new DependencyInjectionViewLocator(
services.GetRequiredService<ILogger<DependencyInjectionViewLocator>>(),
services
)
)
.AddSingleton<NavigationService>((_) => new NavigationService(Application.Current?.ApplicationLifetime))
// Главные
.AddSingleton<MainViewModel>()
.AddSingleton<MainView>()
// Основные
.AddSingleton<AmineContentViewModel>()
.AddSingleton<AmineContentView>()
// Core
.AddSingleton<GSS2.UI.Core.ViewModels.MainWindowViewModel>()
.AddSingleton<GSS2.UI.Core.ViewModels.CameraViewModel>()
.AddSingleton<GSS2.UI.Core.ViewModels.IlluminatorControllerViewModel>()
.AddSingleton<GSS2.UI.Core.Views.CameraView>()
.AddSingleton<GSS2.UI.Core.Views.IlluminatorControllerView>()
// Общие
.AddSingleton<ViewModels.Common.SystemViewModel>()
.AddSingleton<ViewModels.Common.CameraViewModel>()
.AddSingleton<Views.Common.SystemView>()
.AddSingleton<Views.Common.CameraView>()
// AmineContent
.AddSingleton<ViewModels.AmineContent.StartViewModel>()
.AddSingleton<ViewModels.AmineContent.AnalysisViewModel>()
.AddSingleton<ViewModels.AmineContent.ResultsViewModel>()
.AddSingleton<ViewModels.AmineContent.SampleCalibrationViewModel>()
.AddSingleton<ViewModels.AmineContent.SeparatorCalibrationViewModel>()
.AddSingleton<Views.AmineContent.StartView>()
.AddSingleton<Views.AmineContent.AnalysisView>()
.AddSingleton<Views.AmineContent.ResultsView>()
.AddSingleton<Views.AmineContent.SampleCalibrationView>()
.AddSingleton<Views.AmineContent.SeparatorCalibrationView>();
}