presenceNikita/Demo/Program.cs

35 lines
1.4 KiB
C#

using Demo.Data.RemoteData.RemoteDataBase; // Подключаем необходимые пространства имен
using Demo.Data.Repository;
using Demo.Domain.UseCase;
using Demo.UI;
using Microsoft.Extensions.DependencyInjection;
// Создаем экземпляр репозиториев
IServiceCollection services = new ServiceCollection(); // Создаем коллекцию сервисов
// Добавляем контекст базы данных
services.AddDbContext<RemoteDatabaseContext>();
// Добавляем репозитории
services.AddSingleton<IGroupRepository, SQLGroupRepositoryImpl>();
services.AddSingleton<IUserRepository, SQLUserRepositoryImpl>();
services.AddSingleton<IPresenceRepository, SQLPresenceRepositoryImpl>();
// Добавляем юз-кейсы
services.AddSingleton<UserUseCase>();
services.AddSingleton<GroupUseCase>();
services.AddSingleton<UseCaseGeneratePresence>();
// Добавляем пользовательские интерфейсы
services.AddSingleton<GroupConsoleUI>();
services.AddSingleton<PresenceConsole>();
services.AddSingleton<MainMenuUI>();
var serviceProvider = services.BuildServiceProvider(); // Создаем провайдер сервисов
// Создаем пользовательский интерфейс
MainMenuUI mainMenuUI = serviceProvider.GetService<MainMenuUI>();
// Выводим главное меню
mainMenuUI.DisplayMenu(); // Выводим меню