presence/Demo/Program.cs
2024-10-25 11:47:11 +03:00

31 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;
// Создаем экземпляр репозиториев
GroupRepositoryImpl groupRepositoryImpl = new GroupRepositoryImpl();
UserRepositoryImpl userRepositoryImpl = new UserRepositoryImpl();
PresenceRepositoryImpl presenceRepositoryImpl = new PresenceRepositoryImpl();
IServiceCollection services = new ServiceCollection();
services.AddDbContext<RemoteDatabaseContext>().
AddSingleton<IGroupRepository, SQLGroupRepositoryImpl>();
services.AddDbContext<RemoteDatabaseContext>().
AddSingleton<IUserRepository, SQLUserRepositoryImpl>();
services.AddDbContext<RemoteDatabaseContext>().
AddSingleton<IPresenceRepository, SQLPresenceRepositoryImpl>();
// Создаем UseCase для пользователей и групп
UserUseCase userUseCase = new UserUseCase(userRepositoryImpl, groupRepositoryImpl);
GroupUseCase groupUseCase = new GroupUseCase(groupRepositoryImpl);
UseCaseGeneratePresence presenceUseCase = new UseCaseGeneratePresence(userRepositoryImpl, presenceRepositoryImpl);
// Создаем пользовательский интерфейс
MainMenuUI mainMenuUI = new MainMenuUI(userUseCase, groupUseCase, presenceUseCase);
// Выводим главное меню
mainMenuUI.DisplayMenu();