From f7d51508b530eabb76d3b4b1f318300167d3841e Mon Sep 17 00:00:00 2001 From: adm Date: Fri, 25 Oct 2024 11:47:11 +0300 Subject: [PATCH] init --- Demo/Data/LocalData/Entity/Group.cs | 2 + .../RemoteData/RemoteDataBase/DAO/Group.cs | 16 +++ .../RemoteData/RemoteDataBase/DAO/Presence.cs | 18 +++ .../RemoteData/RemoteDataBase/DAO/User.cs | 16 +++ .../RemoteDataBase/RemoteDatabase.cs | 12 ++ .../RemoteDataBase/RemoteDatabaseContext.cs | 40 ++++++ Demo/Data/Repository/GroupRepositoryImpl.cs | 59 +++++++- Demo/Data/Repository/IGroupRepository.cs | 11 +- Demo/Data/Repository/IPresenceRepository.cs | 8 ++ Demo/Data/Repository/IUserRepository.cs | 20 +++ .../Data/Repository/PresenceRepositoryImpl.cs | 27 ++-- .../Data/Repository/SQLGroupRepositoryImpl.cs | 129 ++++++++++++++++++ Demo/Data/Repository/SQLPresenceRepository.cs | 69 ++++++++++ Demo/Data/Repository/SQLUserRepositoryImpl.cs | 60 ++++++++ Demo/Data/Repository/UserRepositoryImpl.cs | 15 +- Demo/Demo.csproj | 8 +- Demo/Program.cs | 15 +- Demo/bin/Debug/net8.0/Demo.dll | Bin 32768 -> 45568 bytes Demo/bin/Debug/net8.0/Demo.exe | Bin 138752 -> 138752 bytes Demo/bin/Debug/net8.0/Demo.pdb | Bin 23060 -> 27292 bytes Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs | 2 +- .../net8.0/Demo.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- Demo/obj/Debug/net8.0/Demo.assets.cache | Bin 35984 -> 35984 bytes .../Demo.csproj.CoreCompileInputs.cache | 2 +- Demo/obj/Debug/net8.0/Demo.dll | Bin 32768 -> 45568 bytes .../Debug/net8.0/Demo.genruntimeconfig.cache | 2 +- Demo/obj/Debug/net8.0/Demo.pdb | Bin 23060 -> 27292 bytes Demo/obj/Debug/net8.0/apphost.exe | Bin 138752 -> 138752 bytes Demo/obj/Debug/net8.0/ref/Demo.dll | Bin 13312 -> 16896 bytes Demo/obj/Debug/net8.0/refint/Demo.dll | Bin 13312 -> 16896 bytes Demo/obj/Demo.csproj.nuget.dgspec.json | 10 +- Demo/obj/project.nuget.cache | 4 +- 33 files changed, 517 insertions(+), 32 deletions(-) create mode 100644 Demo/Data/RemoteData/RemoteDataBase/DAO/Group.cs create mode 100644 Demo/Data/RemoteData/RemoteDataBase/DAO/Presence.cs create mode 100644 Demo/Data/RemoteData/RemoteDataBase/DAO/User.cs create mode 100644 Demo/Data/RemoteData/RemoteDataBase/RemoteDatabase.cs create mode 100644 Demo/Data/RemoteData/RemoteDataBase/RemoteDatabaseContext.cs create mode 100644 Demo/Data/Repository/IUserRepository.cs create mode 100644 Demo/Data/Repository/SQLGroupRepositoryImpl.cs create mode 100644 Demo/Data/Repository/SQLPresenceRepository.cs create mode 100644 Demo/Data/Repository/SQLUserRepositoryImpl.cs diff --git a/Demo/Data/LocalData/Entity/Group.cs b/Demo/Data/LocalData/Entity/Group.cs index 6041311..d039987 100644 --- a/Demo/Data/LocalData/Entity/Group.cs +++ b/Demo/Data/LocalData/Entity/Group.cs @@ -11,5 +11,7 @@ namespace Demo.domain.Models public required int Id { get; set; } public required string Name { get; set; } + + } } diff --git a/Demo/Data/RemoteData/RemoteDataBase/DAO/Group.cs b/Demo/Data/RemoteData/RemoteDataBase/DAO/Group.cs new file mode 100644 index 0000000..45c2dd4 --- /dev/null +++ b/Demo/Data/RemoteData/RemoteDataBase/DAO/Group.cs @@ -0,0 +1,16 @@ +using Demo.domain.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase.DAO +{ + public class GroupDao + { + public int Id { get; set; } + public required string Name { get; set; } + public List Users { get; set; } + } +} diff --git a/Demo/Data/RemoteData/RemoteDataBase/DAO/Presence.cs b/Demo/Data/RemoteData/RemoteDataBase/DAO/Presence.cs new file mode 100644 index 0000000..9df8139 --- /dev/null +++ b/Demo/Data/RemoteData/RemoteDataBase/DAO/Presence.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase.DAO +{ + public class PresenceDao + { + public int UserId { get; set; } + public bool IsAttedance { get; set; } = true; + public DateOnly Date { get; set; } + public int LessonNumber { get; set; } + public UserDao UserDao { get; set; } + public int GroupId { get; set; } + } +} diff --git a/Demo/Data/RemoteData/RemoteDataBase/DAO/User.cs b/Demo/Data/RemoteData/RemoteDataBase/DAO/User.cs new file mode 100644 index 0000000..3f1d898 --- /dev/null +++ b/Demo/Data/RemoteData/RemoteDataBase/DAO/User.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase.DAO +{ + public class UserDao + { + public required string FIO { get; set; } + public int UserId { get; set; } + public required int GroupId { get; set; } + public GroupDao Group { get; set; } + } +} diff --git a/Demo/Data/RemoteData/RemoteDataBase/RemoteDatabase.cs b/Demo/Data/RemoteData/RemoteDataBase/RemoteDatabase.cs new file mode 100644 index 0000000..546b626 --- /dev/null +++ b/Demo/Data/RemoteData/RemoteDataBase/RemoteDatabase.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase +{ + internal class RemoteDatabase + { + } +} diff --git a/Demo/Data/RemoteData/RemoteDataBase/RemoteDatabaseContext.cs b/Demo/Data/RemoteData/RemoteDataBase/RemoteDatabaseContext.cs new file mode 100644 index 0000000..1472157 --- /dev/null +++ b/Demo/Data/RemoteData/RemoteDataBase/RemoteDatabaseContext.cs @@ -0,0 +1,40 @@ +using Microsoft.EntityFrameworkCore; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Demo.Data.RemoteData.RemoteDataBase +{ + public class RemoteDatabaseContext: DbContext + { + public DbSet Groups { get; set; } + public DbSet Users { get; set; } + public DbSet PresenceDaos { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + optionsBuilder.UseNpgsql(); + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity().HasKey(group=>group.Id); + modelBuilder.Entity().Property(group => group.Id).ValueGeneratedOnAdd(); + modelBuilder.Entity().HasKey(user=>user.UserId); + modelBuilder.Entity().Property(user=>user.UserId).ValueGeneratedOnAdd(); + modelBuilder.Entity().HasKey(presence => new + { + presence.UserId, + presence.Date, + presence.IsAttedance, + presence.LessonNumber + }); + + } + } +} diff --git a/Demo/Data/Repository/GroupRepositoryImpl.cs b/Demo/Data/Repository/GroupRepositoryImpl.cs index 7557ff8..67f588b 100644 --- a/Demo/Data/Repository/GroupRepositoryImpl.cs +++ b/Demo/Data/Repository/GroupRepositoryImpl.cs @@ -1,10 +1,12 @@ using Demo.Data.Exceptions; using Demo.Data.LocalData; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.Data.Repository; using Demo.domain.Models; using System.Collections.Generic; using System.Linq; -public class GroupRepositoryImpl +public class GroupRepositoryImpl: IGroupRepository { private List _groups = LocalStaticData.groups; @@ -50,4 +52,59 @@ public class GroupRepositoryImpl _groups.Remove(existingGroup); } } + + public List GetAllGroup() + { + throw new NotImplementedException(); + } + + public bool RemoveGroupById(int groupID) + { + throw new NotImplementedException(); + } + + public bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup) + { + throw new NotImplementedException(); + } + + bool IGroupRepository.AddGroup(GroupLocalEntity newGroup) + { + throw new NotImplementedException(); + } + + public List GetAllGroupDao() + { + throw new NotImplementedException(); + } + + public bool RemoveGroupByIdDao(int groupID) + { + throw new NotImplementedException(); + } + + public bool UpdateGroupById(int groupID, GroupDao updatedGroup) + { + throw new NotImplementedException(); + } + + public GroupDao GetGroupByIdDao(int groupID) + { + throw new NotImplementedException(); + } + + public bool AddGroup(GroupDao newGroup) + { + throw new NotImplementedException(); + } + + public bool UpdateGroupByIdDao(int groupID, GroupDao updatedGroup) + { + throw new NotImplementedException(); + } + + public bool AddGroupDao(GroupDao newGroup) + { + throw new NotImplementedException(); + } } diff --git a/Demo/Data/Repository/IGroupRepository.cs b/Demo/Data/Repository/IGroupRepository.cs index 4abaa92..20ab0e9 100644 --- a/Demo/Data/Repository/IGroupRepository.cs +++ b/Demo/Data/Repository/IGroupRepository.cs @@ -1,4 +1,5 @@ -using Demo.domain.Models; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.domain.Models; using System; using System.Collections.Generic; using System.Linq; @@ -14,5 +15,13 @@ namespace Demo.Data.Repository bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup); GroupLocalEntity GetGroupById(int groupID); bool AddGroup(GroupLocalEntity newGroup); + + + + List GetAllGroupDao(); + bool RemoveGroupByIdDao(int groupID); + bool UpdateGroupByIdDao(int groupID, GroupDao updatedGroup); + GroupDao GetGroupByIdDao(int groupID); + bool AddGroupDao(GroupDao newGroup); } } \ No newline at end of file diff --git a/Demo/Data/Repository/IPresenceRepository.cs b/Demo/Data/Repository/IPresenceRepository.cs index 6ef7543..f3e1827 100644 --- a/Demo/Data/Repository/IPresenceRepository.cs +++ b/Demo/Data/Repository/IPresenceRepository.cs @@ -1,4 +1,5 @@  +using Demo.Data.RemoteData.RemoteDataBase.DAO; using Demo.domain.Models; using Demo.Domain.UseCase; using System; @@ -15,5 +16,12 @@ namespace Demo.Data.Repository List GetPresenceByDateAndGroup(DateTime date, int groupId); void SavePresence(List presences); List GetPresenceByGroup(int groupId); + + + + + List GetPresenceByDateAndGroupDao(DateTime date, int groupId); + void SavePresenceDao(List presences); + List GetPresenceByGroupDao(int groupId); } } diff --git a/Demo/Data/Repository/IUserRepository.cs b/Demo/Data/Repository/IUserRepository.cs new file mode 100644 index 0000000..458cbb8 --- /dev/null +++ b/Demo/Data/Repository/IUserRepository.cs @@ -0,0 +1,20 @@ +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.domain.Models; +using System.Collections.Generic; + +namespace Demo.Data.Repository +{ + public interface IUserRepository + { + IEnumerable GetAllUsers { get; } + bool RemoveUserById(int userId); + UserLocalEnity? UpdateUser(UserLocalEnity user); + + + IEnumerable GetAllUsersDao { get; } + bool RemoveUserByIdDao(int userId); + UserDao? UpdateUserDao(UserDao user); + + + } +} diff --git a/Demo/Data/Repository/PresenceRepositoryImpl.cs b/Demo/Data/Repository/PresenceRepositoryImpl.cs index 59420c7..30f4a89 100644 --- a/Demo/Data/Repository/PresenceRepositoryImpl.cs +++ b/Demo/Data/Repository/PresenceRepositoryImpl.cs @@ -1,4 +1,6 @@ using Demo.Data.LocalData; +using Demo.Data.RemoteData.RemoteDataBase; +using Demo.Data.RemoteData.RemoteDataBase.DAO; using Demo.domain.Models; using System; using System.Collections.Generic; @@ -41,21 +43,24 @@ namespace Demo.Data.Repository LocalStaticData.users.Any(u => u.GroupID == groupId && u.ID == p.UserId)).ToList(); } - // Реализация метода для получения всех данных по группе - public List GetAllPresenceByGroup(int groupId) - { - return _presences - .Where(p => LocalStaticData.users.Any(u => u.GroupID == groupId && u.ID == p.UserId)) - .OrderBy(p => p.Date) - .ThenBy(p => p.LessonNumber) - .ToList(); - } - - public List GetPresenceByGroup(int groupId) { return _presences.Where(p => p.GroupId == groupId).ToList(); } + public List GetPresenceByDateAndGroupDao(DateTime date, int groupId) + { + throw new NotImplementedException(); + } + + public void SavePresenceDao(List presences) + { + throw new NotImplementedException(); + } + + public List GetPresenceByGroupDao(int groupId) + { + throw new NotImplementedException(); + } } } diff --git a/Demo/Data/Repository/SQLGroupRepositoryImpl.cs b/Demo/Data/Repository/SQLGroupRepositoryImpl.cs new file mode 100644 index 0000000..5428d8a --- /dev/null +++ b/Demo/Data/Repository/SQLGroupRepositoryImpl.cs @@ -0,0 +1,129 @@ +using Demo.Data.RemoteData.RemoteDataBase; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.domain.Models; +using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Demo.Data.Repository +{ + public class SQLGroupRepositoryImpl : IGroupRepository + { + private readonly RemoteDatabaseContext _remoteDatabaseContext; + + public SQLGroupRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext) + { + _remoteDatabaseContext = remoteDatabaseContext; + } + + // Метод для добавления новой группы + public bool AddGroupDao(GroupDao newGroup) + { + var groupDao = new GroupDao + { + Name = newGroup.Name + }; + _remoteDatabaseContext.Groups.Add(groupDao); + _remoteDatabaseContext.SaveChanges(); + return true; + } + + // Метод для получения группы по ID + public GroupDao GetGroupByIdDao(int groupId) + { + var groupDao = _remoteDatabaseContext.Groups + .Include(g => g.Users) + .FirstOrDefault(g => g.Id == groupId); + if (groupDao == null) return null; + + return new GroupDao + { + Id = groupDao.Id, + Name = groupDao.Name, + Users = groupDao.Users.Select(u => new UserDao + { + UserId = u.UserId, + FIO = u.FIO, + GroupId = u.GroupId + }).ToList() + }; + } + + // Метод для получения всех групп + public List GetAllGroupDao() + { + return _remoteDatabaseContext.Groups + .Include(g => g.Users) + .Select(g => new GroupDao + { + Id = g.Id, + Name = g.Name, + Users = g.Users.Select(u => new UserDao + { + UserId = u.UserId, + FIO = u.FIO, + GroupId = u.GroupId + }).ToList() + }) + .ToList(); + } + + // Метод для обновления группы по ID + public bool UpdateGroupByIdDao(int groupId, GroupDao updatedGroup) + { + var groupDao = _remoteDatabaseContext.Groups + .Include(g => g.Users) + .FirstOrDefault(g => g.Id == groupId); + if (groupDao == null) return false; + + groupDao.Name = updatedGroup.Name; + // Пример обновления списка пользователей + groupDao.Users = updatedGroup.Users.Select(user => new UserDao + { + UserId = user.UserId, + FIO = user.FIO, + GroupId = user.GroupId + }).ToList(); + + _remoteDatabaseContext.SaveChanges(); + return true; + } + + // Метод для удаления группы по ID + public bool RemoveGroupByIdDao(int groupId) + { + var groupDao = _remoteDatabaseContext.Groups.Find(groupId); + if (groupDao == null) return false; + + _remoteDatabaseContext.Groups.Remove(groupDao); + _remoteDatabaseContext.SaveChanges(); + return true; + } + + public List GetAllGroup() + { + throw new NotImplementedException(); + } + + public bool RemoveGroupById(int groupID) + { + throw new NotImplementedException(); + } + + public bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup) + { + throw new NotImplementedException(); + } + + public GroupLocalEntity GetGroupById(int groupID) + { + throw new NotImplementedException(); + } + + public bool AddGroup(GroupLocalEntity newGroup) + { + throw new NotImplementedException(); + } + } +} diff --git a/Demo/Data/Repository/SQLPresenceRepository.cs b/Demo/Data/Repository/SQLPresenceRepository.cs new file mode 100644 index 0000000..8c7559f --- /dev/null +++ b/Demo/Data/Repository/SQLPresenceRepository.cs @@ -0,0 +1,69 @@ +using Demo.Data.LocalData; +using Demo.Data.RemoteData.RemoteDataBase; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.domain.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Demo.Data.Repository +{ + public class SQLPresenceRepositoryImpl : IPresenceRepository + { + private readonly RemoteDatabaseContext _remoteDatabaseContext; + + public SQLPresenceRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext) + { + _remoteDatabaseContext = remoteDatabaseContext; + } + + public List GetPresenceByDateAndGroup(DateTime date, int groupId) + { + throw new NotImplementedException(); + } + + public List GetPresenceByDateAndGroupDao(DateTime date, int groupId) + { + return _remoteDatabaseContext.PresenceDaos.Where(p => p.Date == DateOnly.FromDateTime(date) && + LocalStaticData.users.Any(u => u.GroupID == groupId && u.ID == p.UserId)).ToList(); + } + + public List GetPresenceByGroup(int groupId) + { + throw new NotImplementedException(); + } + + // Реализация метода для получения всех данных по группе + public List GetPresenceByGroupDao(int groupId) + { + return _remoteDatabaseContext.PresenceDaos.Where(p => p.GroupId == groupId).ToList(); + } + + public void SavePresence(List presences) + { + throw new NotImplementedException(); + } + + public void SavePresenceDao(List presences) + { + foreach (var presence in presences) + { + var existingPresence = _remoteDatabaseContext.PresenceDaos.FirstOrDefault(p => + p.Date == presence.Date && + p.UserId == presence.UserId && + p.LessonNumber == presence.LessonNumber); + + if (existingPresence == null) + { + _remoteDatabaseContext.PresenceDaos.Add(presence); + } + else + { + existingPresence.IsAttedance = presence.IsAttedance; + } + } + } + } +} diff --git a/Demo/Data/Repository/SQLUserRepositoryImpl.cs b/Demo/Data/Repository/SQLUserRepositoryImpl.cs new file mode 100644 index 0000000..a21711e --- /dev/null +++ b/Demo/Data/Repository/SQLUserRepositoryImpl.cs @@ -0,0 +1,60 @@ +using Demo.Data.Exceptions; +using Demo.Data.RemoteData.RemoteDataBase; +using Demo.Data.RemoteData.RemoteDataBase.DAO; +using Demo.domain.Models; +using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Demo.Data.Repository +{ + public class SQLUserRepositoryImpl : IUserRepository + { + private readonly RemoteDatabaseContext _remoteDatabaseContext; + + public SQLUserRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext) + { + _remoteDatabaseContext = remoteDatabaseContext; + } + + public IEnumerable GetAllUsersDao => _remoteDatabaseContext.Users; + + public bool RemoveUserByIdDao(int userId) + { + var user = _remoteDatabaseContext.Users.FirstOrDefault(u => u.UserId == userId); + if (user == null) throw new UserNotFoundException(userId); + + _remoteDatabaseContext.Users.Remove(user); + return true; + } + + public UserDao? UpdateUserDao(UserDao user) + { + var existingUser = _remoteDatabaseContext.Users.FirstOrDefault(u => u.UserId == user.UserId); + if (existingUser == null) throw new UserNotFoundException(user.UserId); + + existingUser.FIO = user.FIO; + existingUser.GroupId = user.GroupId; + + return existingUser; + } + + + + + + + public IEnumerable GetAllUsers => throw new NotImplementedException(); + + public bool RemoveUserById(int userId) + { + throw new NotImplementedException(); + } + + public UserLocalEnity? UpdateUser(UserLocalEnity user) + { + throw new NotImplementedException(); + } + } +} diff --git a/Demo/Data/Repository/UserRepositoryImpl.cs b/Demo/Data/Repository/UserRepositoryImpl.cs index 86dcb88..39dd343 100644 --- a/Demo/Data/Repository/UserRepositoryImpl.cs +++ b/Demo/Data/Repository/UserRepositoryImpl.cs @@ -1,5 +1,6 @@ using Demo.Data.Exceptions; using Demo.Data.LocalData; +using Demo.Data.RemoteData.RemoteDataBase.DAO; using Demo.domain.Models; using System; using System.Collections.Generic; @@ -7,7 +8,7 @@ using System.Linq; namespace Demo.Data.Repository { - public class UserRepositoryImpl + public class UserRepositoryImpl: IUserRepository { private List _users; @@ -18,6 +19,8 @@ namespace Demo.Data.Repository public IEnumerable GetAllUsers => _users; + public IEnumerable GetAllUsersDao => throw new NotImplementedException(); + public bool RemoveUserById(int userId) { var user = _users.FirstOrDefault(u => u.ID == userId); @@ -27,6 +30,11 @@ namespace Demo.Data.Repository return true; } + public bool RemoveUserByIdDao(int userId) + { + throw new NotImplementedException(); + } + public UserLocalEnity? UpdateUser(UserLocalEnity user) { var existingUser = _users.FirstOrDefault(u => u.Guid == user.Guid); @@ -37,5 +45,10 @@ namespace Demo.Data.Repository return existingUser; } + + public UserDao? UpdateUserDao(UserDao user) + { + throw new NotImplementedException(); + } } } diff --git a/Demo/Demo.csproj b/Demo/Demo.csproj index 899a44e..ed80240 100644 --- a/Demo/Demo.csproj +++ b/Demo/Demo.csproj @@ -7,10 +7,6 @@ enable - - - - @@ -21,4 +17,8 @@ + + + + diff --git a/Demo/Program.cs b/Demo/Program.cs index 7a132ef..69f5544 100644 --- a/Demo/Program.cs +++ b/Demo/Program.cs @@ -1,11 +1,22 @@ -using Demo.Data.Repository; +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(); // Создаем экземпляр PresenceRepositoryImpl +PresenceRepositoryImpl presenceRepositoryImpl = new PresenceRepositoryImpl(); +IServiceCollection services = new ServiceCollection(); + +services.AddDbContext(). + AddSingleton(); +services.AddDbContext(). + AddSingleton(); +services.AddDbContext(). + AddSingleton(); + // Создаем UseCase для пользователей и групп UserUseCase userUseCase = new UserUseCase(userRepositoryImpl, groupRepositoryImpl); diff --git a/Demo/bin/Debug/net8.0/Demo.dll b/Demo/bin/Debug/net8.0/Demo.dll index b67bfe00e11f5e44401783bc9b8326ff0b0c9ac7..465d22c80d12d2e08ac92730d5fec01db53e376a 100644 GIT binary patch literal 45568 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 literal 32768 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 diff --git a/Demo/bin/Debug/net8.0/Demo.pdb b/Demo/bin/Debug/net8.0/Demo.pdb index bc065756768495f0a2a02c6b3cf1c5d706a73ce3..93cdd054aff6df813d8bb300f86ab6e60d8653f7 100644 GIT binary patch delta 10398 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 JUih&nXp9h47c&3= delta 51 zcmV-30L=f8nF5fR0w_>RM?nk#0067Tnuj+;YjnMQ(Z(Tpz&fMpOQn_nT{(K_jOZjE J1)Q-cXp9iu7ApV% diff --git a/Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache b/Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache index e31422f..42846e4 100644 --- a/Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache +++ b/Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -f332ef5a930fab54749fbe5329497cc560cebacd091081c9fb4dc676cfcfd95f +d802b7b93a990c8713727f8364fc47b1846b2dbf47bb30c6359a4f9f360292fb diff --git a/Demo/obj/Debug/net8.0/Demo.dll b/Demo/obj/Debug/net8.0/Demo.dll index b67bfe00e11f5e44401783bc9b8326ff0b0c9ac7..465d22c80d12d2e08ac92730d5fec01db53e376a 100644 GIT binary patch literal 45568 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 literal 32768 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 diff --git a/Demo/obj/Debug/net8.0/ref/Demo.dll b/Demo/obj/Debug/net8.0/ref/Demo.dll index 20d113f50204da9b2575ae9429c5516f9d9c418d..e9a31be0bb7c814eb2ddd633294e4edc86c0db8c 100644 GIT binary patch literal 16896 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