From 416f0914dcab20ac96a1e586066446e093e892c5 Mon Sep 17 00:00:00 2001 From: adm Date: Fri, 1 Nov 2024 12:42:31 +0300 Subject: [PATCH] init --- .../RemoteData/RemoteDataBase/DAO/Group.cs | 2 +- .../RemoteData/RemoteDataBase/DAO/Presence.cs | 1 + .../RemoteData/RemoteDataBase/DAO/User.cs | 2 +- .../RemoteDataBase/RemoteDatabaseContext.cs | 9 +-- Demo/Data/Repository/GroupRepositoryImpl.cs | 5 -- Demo/Data/Repository/IGroupRepository.cs | 1 - Demo/Data/Repository/IPresenceRepository.cs | 2 + Demo/Data/Repository/IUserRepository.cs | 2 +- .../Data/Repository/PresenceRepositoryImpl.cs | 2 + Demo/Data/Repository/SQLPresenceRepository.cs | 27 +++++-- Demo/Data/Repository/SQLUserRepositoryImpl.cs | 10 ++- Demo/Data/Repository/UserRepositoryImpl.cs | 11 --- Demo/Demo.csproj | 1 + Demo/Domain/UseCase/GroupUseCase.cs | 20 ----- .../Domain/UseCase/UseCaseGeneratePresence.cs | 31 +++++--- Demo/Domain/UseCase/UserUseCase.cs | 60 +++++++------- ...241101064613_InitialMigration.Designer.cs} | 32 +++----- ....cs => 20241101064613_InitialMigration.cs} | 46 +++++------ .../RemoteDatabaseContextModelSnapshot.cs | 28 +++---- Demo/UI/GroupConsole.cs | 7 -- Demo/UI/MainMenu.cs | 74 +++++++++--------- Demo/UI/PresenceConsole.cs | 70 ++++++++++------- Demo/UI/UserConsole.cs | 37 ++++----- Demo/bin/Debug/net8.0/Demo.dll | Bin 57856 -> 57856 bytes Demo/bin/Debug/net8.0/Demo.exe | Bin 138752 -> 138752 bytes Demo/bin/Debug/net8.0/Demo.pdb | Bin 27984 -> 28420 bytes Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs | 2 +- .../net8.0/Demo.AssemblyInfoInputs.cache | 2 +- .../Demo.csproj.CoreCompileInputs.cache | 2 +- Demo/obj/Debug/net8.0/Demo.dll | Bin 57856 -> 57856 bytes Demo/obj/Debug/net8.0/Demo.pdb | Bin 27984 -> 28420 bytes Demo/obj/Debug/net8.0/apphost.exe | Bin 138752 -> 138752 bytes Demo/obj/Debug/net8.0/ref/Demo.dll | Bin 17920 -> 17920 bytes Demo/obj/Debug/net8.0/refint/Demo.dll | Bin 17920 -> 17920 bytes 34 files changed, 232 insertions(+), 254 deletions(-) rename Demo/Migrations/{20241025085326_InitialCreate.Designer.cs => 20241101064613_InitialMigration.Designer.cs} (83%) rename Demo/Migrations/{20241025085326_InitialCreate.cs => 20241101064613_InitialMigration.cs} (79%) diff --git a/Demo/Data/RemoteData/RemoteDataBase/DAO/Group.cs b/Demo/Data/RemoteData/RemoteDataBase/DAO/Group.cs index 45c2dd4..98dee11 100644 --- a/Demo/Data/RemoteData/RemoteDataBase/DAO/Group.cs +++ b/Demo/Data/RemoteData/RemoteDataBase/DAO/Group.cs @@ -10,7 +10,7 @@ namespace Demo.Data.RemoteData.RemoteDataBase.DAO public class GroupDao { public int Id { get; set; } - public required string Name { get; set; } + public 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 index 9ae499b..fbb977f 100644 --- a/Demo/Data/RemoteData/RemoteDataBase/DAO/Presence.cs +++ b/Demo/Data/RemoteData/RemoteDataBase/DAO/Presence.cs @@ -8,6 +8,7 @@ namespace Demo.Data.RemoteData.RemoteDataBase.DAO { public class PresenceDao { + public int PresenceId { get; set; } public int UserId { get; set; } public bool IsAttedance { get; set; } = true; public DateOnly Date { get; set; } diff --git a/Demo/Data/RemoteData/RemoteDataBase/DAO/User.cs b/Demo/Data/RemoteData/RemoteDataBase/DAO/User.cs index 24dd124..6106b1b 100644 --- a/Demo/Data/RemoteData/RemoteDataBase/DAO/User.cs +++ b/Demo/Data/RemoteData/RemoteDataBase/DAO/User.cs @@ -11,6 +11,6 @@ namespace Demo.Data.RemoteData.RemoteDataBase.DAO public required string FIO { get; set; } public required int UserId { get; set; } public required int GroupId { get; set; } - public GroupDao Group { get; set; } + public GroupDao? Group { get; set; } } } diff --git a/Demo/Data/RemoteData/RemoteDataBase/RemoteDatabaseContext.cs b/Demo/Data/RemoteData/RemoteDataBase/RemoteDatabaseContext.cs index e3cf70f..31255d9 100644 --- a/Demo/Data/RemoteData/RemoteDataBase/RemoteDatabaseContext.cs +++ b/Demo/Data/RemoteData/RemoteDataBase/RemoteDatabaseContext.cs @@ -27,13 +27,8 @@ namespace Demo.Data.RemoteData.RemoteDataBase 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 - }); + modelBuilder.Entity().HasKey(presence =>presence.PresenceId); + modelBuilder.Entity().Property(presence=>presence.PresenceId).ValueGeneratedOnAdd(); } } diff --git a/Demo/Data/Repository/GroupRepositoryImpl.cs b/Demo/Data/Repository/GroupRepositoryImpl.cs index 4c75bb6..546f993 100644 --- a/Demo/Data/Repository/GroupRepositoryImpl.cs +++ b/Demo/Data/Repository/GroupRepositoryImpl.cs @@ -53,11 +53,6 @@ public class GroupRepositoryImpl: IGroupRepository } } - bool IGroupRepository.RemoveGroupById(int groupID) - { - throw new NotImplementedException(); - } - List IGroupRepository.GetAllGroups() { throw new NotImplementedException(); diff --git a/Demo/Data/Repository/IGroupRepository.cs b/Demo/Data/Repository/IGroupRepository.cs index 6eb3ab3..d5f20ef 100644 --- a/Demo/Data/Repository/IGroupRepository.cs +++ b/Demo/Data/Repository/IGroupRepository.cs @@ -11,7 +11,6 @@ namespace Demo.Data.Repository public interface IGroupRepository { List GetAllGroups(); - bool RemoveGroupById(int groupID); bool UpdateGroupById(int groupID, GroupDao updatedGroup); GroupDao GetGroupById(int groupID); bool AddGroup(string Name); diff --git a/Demo/Data/Repository/IPresenceRepository.cs b/Demo/Data/Repository/IPresenceRepository.cs index 0415ab7..8709689 100644 --- a/Demo/Data/Repository/IPresenceRepository.cs +++ b/Demo/Data/Repository/IPresenceRepository.cs @@ -15,5 +15,7 @@ namespace Demo.Data.Repository List GetPresenceByDateAndGroup(DateTime date, int groupId); void SavePresence(List presences); List GetPresenceByGroup(int groupId); + DateOnly? GetLastDateByGroupId(int groupId); + List GetPresenceForAbsent(DateTime date, int GroupId); } } diff --git a/Demo/Data/Repository/IUserRepository.cs b/Demo/Data/Repository/IUserRepository.cs index 0a3cae6..e3fa986 100644 --- a/Demo/Data/Repository/IUserRepository.cs +++ b/Demo/Data/Repository/IUserRepository.cs @@ -6,7 +6,7 @@ namespace Demo.Data.Repository { public interface IUserRepository { - IEnumerable GetAllUsers { get; } + List GetAllUsers(); bool RemoveUserById(int userId); UserDao? UpdateUser(UserDao user); } diff --git a/Demo/Data/Repository/PresenceRepositoryImpl.cs b/Demo/Data/Repository/PresenceRepositoryImpl.cs index d38d28f..0f0b8df 100644 --- a/Demo/Data/Repository/PresenceRepositoryImpl.cs +++ b/Demo/Data/Repository/PresenceRepositoryImpl.cs @@ -47,5 +47,7 @@ namespace Demo.Data.Repository { return _presences.Where(p => p.GroupId == groupId).ToList(); } + + } } diff --git a/Demo/Data/Repository/SQLPresenceRepository.cs b/Demo/Data/Repository/SQLPresenceRepository.cs index bab77ab..db553db 100644 --- a/Demo/Data/Repository/SQLPresenceRepository.cs +++ b/Demo/Data/Repository/SQLPresenceRepository.cs @@ -2,10 +2,13 @@ using Demo.Data.RemoteData.RemoteDataBase; using Demo.Data.RemoteData.RemoteDataBase.DAO; using Demo.domain.Models; +using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; +using System.Data; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; namespace Demo.Data.Repository @@ -18,7 +21,10 @@ namespace Demo.Data.Repository { _remoteDatabaseContext = remoteDatabaseContext; } - + public List GetPresenceForAbsent(DateTime date, int GroupId) + { + return _remoteDatabaseContext.PresenceDaos.Where(p => p.GroupId == GroupId && p.Date==DateOnly.FromDateTime(date)).ToList(); + } public List GetPresenceByDateAndGroup(DateTime date, int groupId) { return _remoteDatabaseContext.PresenceDaos.Where(p => p.Date == DateOnly.FromDateTime(date) && @@ -28,10 +34,6 @@ namespace Demo.Data.Repository // Реализация метода для получения всех данных по группе public List GetPresenceByGroup(int groupId) { - foreach (var user in _remoteDatabaseContext.PresenceDaos) - { - Console.WriteLine(user); - } return _remoteDatabaseContext.PresenceDaos.Where(p => p.GroupId == groupId).ToList(); } @@ -42,10 +44,23 @@ namespace Demo.Data.Repository Date = it.Date, IsAttedance = it.IsAttedance, LessonNumber = it.LessonNumber, - UserId = it.UserId + UserId = it.UserId, + GroupId = it.GroupId })); _remoteDatabaseContext.SaveChanges(); } + public DateOnly? GetLastDateByGroupId(int groupId) + { + // Проверяем наличие записей о посещаемости в базе данных для данной группы. + var lastDate = _remoteDatabaseContext.PresenceDaos + .Where(p => p.GroupId == groupId) + .OrderByDescending(p => p.Date) + .Select(p => p.Date) + .FirstOrDefault(); + + return lastDate == default ? (DateOnly?)null : lastDate; + } + } } diff --git a/Demo/Data/Repository/SQLUserRepositoryImpl.cs b/Demo/Data/Repository/SQLUserRepositoryImpl.cs index c6a10c0..a8a68a0 100644 --- a/Demo/Data/Repository/SQLUserRepositoryImpl.cs +++ b/Demo/Data/Repository/SQLUserRepositoryImpl.cs @@ -18,8 +18,6 @@ namespace Demo.Data.Repository _remoteDatabaseContext = remoteDatabaseContext; } - public IEnumerable GetAllUsers => _remoteDatabaseContext.Users; - public bool RemoveUserById(int userId) { var user = _remoteDatabaseContext.Users.FirstOrDefault(u => u.UserId == userId); @@ -34,10 +32,18 @@ namespace Demo.Data.Repository 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; + _remoteDatabaseContext.SaveChanges(); return existingUser; } + + public List GetAllUsers() + { + // Возвращаем пользователей, отсортированных по UserId + return _remoteDatabaseContext.Users.OrderBy(u => u.UserId).ToList(); + } } } diff --git a/Demo/Data/Repository/UserRepositoryImpl.cs b/Demo/Data/Repository/UserRepositoryImpl.cs index a25e30f..e1d6e40 100644 --- a/Demo/Data/Repository/UserRepositoryImpl.cs +++ b/Demo/Data/Repository/UserRepositoryImpl.cs @@ -29,17 +29,6 @@ namespace Demo.Data.Repository return true; } - public UserLocalEnity? UpdateUser(UserLocalEnity user) - { - var existingUser = _users.FirstOrDefault(u => u.ID == user.ID); - if (existingUser == null) throw new UserNotFoundException(user.ID); - - existingUser.FIO = user.FIO; - existingUser.GroupID = user.GroupID; - - return existingUser; - } - public UserDao? UpdateUser(UserDao user) { throw new NotImplementedException(); diff --git a/Demo/Demo.csproj b/Demo/Demo.csproj index ed80240..e091d33 100644 --- a/Demo/Demo.csproj +++ b/Demo/Demo.csproj @@ -19,6 +19,7 @@ + diff --git a/Demo/Domain/UseCase/GroupUseCase.cs b/Demo/Domain/UseCase/GroupUseCase.cs index f8d3f6f..f0749a3 100644 --- a/Demo/Domain/UseCase/GroupUseCase.cs +++ b/Demo/Domain/UseCase/GroupUseCase.cs @@ -91,26 +91,6 @@ namespace Demo.Domain.UseCase _repositoryGroupImpl.AddGroup(newGroup.Name); } - public void RemoveGroupById(int groupId) - { - ValidateGroupId(groupId); - var existingGroup = ValidateGroupExistence(groupId); - List _groups = GetAllGroups(); - - // Находим группу по ID и удаляем ее - var groupToRemove = _groups.FirstOrDefault(g => g.Id == existingGroup.Id); - if (groupToRemove != null) - { - _groups.Remove(groupToRemove); - _repositoryGroupImpl.RemoveGroupById(existingGroup.Id); - } - else - { - throw new ArgumentException("Группа не найдена."); - // Обработка случая, если группа не найдена (например, выброс исключения) - } - } - // Метод для изменения названия группы public void UpdateGroup(int groupId, string newGroupName) diff --git a/Demo/Domain/UseCase/UseCaseGeneratePresence.cs b/Demo/Domain/UseCase/UseCaseGeneratePresence.cs index 4320e66..c9ae066 100644 --- a/Demo/Domain/UseCase/UseCaseGeneratePresence.cs +++ b/Demo/Domain/UseCase/UseCaseGeneratePresence.cs @@ -1,6 +1,7 @@ using Demo.Data.RemoteData.RemoteDataBase.DAO; using Demo.Data.Repository; using Demo.domain.Models; +using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; @@ -13,6 +14,7 @@ namespace Demo.Domain.UseCase { public readonly IUserRepository _userRepository; public readonly IPresenceRepository _presenceRepository; + public UseCaseGeneratePresence(IUserRepository userRepository, IPresenceRepository presenceRepository) { @@ -28,23 +30,26 @@ namespace Demo.Domain.UseCase return _presenceRepository.GetPresenceByDateAndGroup(date, groupId); } - public void GeneratePresenceDaily(int firstLesson, int lastLesson, int groupId, DateTime currentDate) + public void GeneratePresenceDaily(int firstLesson, int lastLesson, int groupId) { try { - var users = _userRepository.GetAllUsers.Where(u => u.GroupId == groupId).ToList(); + var users = _userRepository.GetAllUsers().Where(u => u.GroupId == groupId).ToList(); + + // Находим последнюю дату посещаемости для данной группы + DateOnly startDate = _presenceRepository.GetLastDateByGroupId(groupId)?.AddDays(1) + ?? DateOnly.FromDateTime(DateTime.Today); List presences = new List(); for (int lessonNumber = firstLesson; lessonNumber <= lastLesson; lessonNumber++) { foreach (var user in users) { - Console.WriteLine($"UserId: {user.UserId}, GroupId: {user.GroupId}"); // Выводим информацию о пользователе var presence = new PresenceDao { UserId = user.UserId, GroupId = user.GroupId, - Date = DateOnly.FromDateTime(currentDate), + Date = startDate, LessonNumber = lessonNumber, IsAttedance = true }; @@ -52,7 +57,7 @@ namespace Demo.Domain.UseCase try { _presenceRepository.SavePresence(new List { presence }); - Console.WriteLine($"Посещаемость добавлена для UserId = {user.UserId}, LessonNumber = {lessonNumber}"); + Console.WriteLine($"Посещаемость добавлена для UserId = {user.UserId}, LessonNumber = {lessonNumber} на дату {startDate}"); } catch (Exception ex) { @@ -76,12 +81,14 @@ namespace Demo.Domain.UseCase } + + public void GenerateWeeklyPresence(int firstLesson, int lastLesson, int groupId, DateTime startTime) { for (int i = 0; i < 7; i++) { DateTime currentTime = startTime.AddDays(i); - GeneratePresenceDaily(firstLesson, lastLesson, groupId, currentTime); + GeneratePresenceDaily(firstLesson, lastLesson, groupId); } } @@ -90,24 +97,26 @@ namespace Demo.Domain.UseCase // Отметить пользователя как отсутствующего на диапазоне занятий public void MarkUserAbsentForLessons(int userId, int groupId, int firstLesson, int lastLesson, DateTime date) { - var presences = _presenceRepository.GetPresenceByDateAndGroup(date, groupId); + List presences = _presenceRepository.GetPresenceForAbsent(date, groupId); + + // Обновляем состояние присутствия для указанных занятий foreach (var presence in presences.Where(p => p.UserId == userId && p.LessonNumber >= firstLesson && p.LessonNumber <= lastLesson)) { - presence.IsAttedance = false; + presence.IsAttedance = false; // Устанавливаем отсутствие + Console.WriteLine($"PresenceId: {presence.PresenceId}, UserId: {presence.UserId}, Lesson Num: {presence.LessonNumber}, Att: {presence.IsAttedance}"); } + // Сохраняем изменения в репозитории _presenceRepository.SavePresence(presences); } - - public List GetAllPresenceByGroup(int groupId) { - return _presenceRepository.GetPresenceByGroup(groupId); } + } } diff --git a/Demo/Domain/UseCase/UserUseCase.cs b/Demo/Domain/UseCase/UserUseCase.cs index 3cb1c84..716e844 100644 --- a/Demo/Domain/UseCase/UserUseCase.cs +++ b/Demo/Domain/UseCase/UserUseCase.cs @@ -28,7 +28,7 @@ namespace Demo.Domain.UseCase // Приватный метод для валидации существования пользователя по ID private UserDao ValidateUserExistence(int userId) { - var user = _repositoryUserImpl.GetAllUsers + var user = _repositoryUserImpl.GetAllUsers() .FirstOrDefault(u => u.UserId == userId); if (user == null) @@ -54,7 +54,7 @@ namespace Demo.Domain.UseCase } // Вывести всех пользователей - public List GetAllUsers() => _repositoryUserImpl.GetAllUsers + public List GetAllUsers() => _repositoryUserImpl.GetAllUsers() .Join(_repositoryGroupImpl.GetAllGroups(), user => user.GroupId, // Ключ для пользователей group => group.Id, // Ключ для групп @@ -86,47 +86,47 @@ namespace Demo.Domain.UseCase } // Обновить пользователя по id - //public User UpdateUser(User user) - //{ - // ValidateUserFIO(user.FIO); - // ValidateGroupExistence(user.Group.Id); + public UserDao UpdateUser(UserDao user) + { + ValidateUserFIO(user.FIO); + ValidateGroupExistence(user.GroupId); - // UserDao userDao = new UserDao - // { - // FIO = user.FIO, - // GroupId = user.Group.Id - // }; + UserDao userDao = new UserDao + { + UserId = user.UserId, + FIO = user.FIO, + GroupId = user.GroupId + }; - // UserDao? result = _repositoryUserImpl.UpdateUser(userDao); + UserDao? result = _repositoryUserImpl.UpdateUser(userDao); - // if (result == null) - // { - // throw new Exception("Ошибка при обновлении пользователя."); - // } + if (result == null) + { + throw new Exception("Ошибка при обновлении пользователя."); + } - // var groupEntity = ValidateGroupExistence(result.GroupId); + var groupEntity = ValidateGroupExistence(result.GroupId); - // return new User - // { - // FIO = result.FIO, - // Group = new Group - // { - // Id = groupEntity.Id, - // Name = groupEntity.Name - // } - // }; - //} + return new UserDao + { + UserId=user.UserId, + FIO = result.FIO, + GroupId = result.GroupId + }; + + } // Найти пользователя по id - public User FindUserById(int userId) + public UserDao FindUserById(int userId) { var user = ValidateUserExistence(userId); var group = ValidateGroupExistence(user.GroupId); - return new User + return new UserDao { + UserId = user.UserId, FIO = user.FIO, - Group = new Group { Id = group.Id, Name = group.Name } + GroupId = group.Id }; } } diff --git a/Demo/Migrations/20241025085326_InitialCreate.Designer.cs b/Demo/Migrations/20241101064613_InitialMigration.Designer.cs similarity index 83% rename from Demo/Migrations/20241025085326_InitialCreate.Designer.cs rename to Demo/Migrations/20241101064613_InitialMigration.Designer.cs index c3f3dd9..7255aa8 100644 --- a/Demo/Migrations/20241025085326_InitialCreate.Designer.cs +++ b/Demo/Migrations/20241101064613_InitialMigration.Designer.cs @@ -12,8 +12,8 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace Demo.Migrations { [DbContext(typeof(RemoteDatabaseContext))] - [Migration("20241025085326_InitialCreate")] - partial class InitialCreate + [Migration("20241101064613_InitialMigration")] + partial class InitialMigration { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -44,27 +44,28 @@ namespace Demo.Migrations modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.PresenceDao", b => { - b.Property("UserId") + b.Property("PresenceId") + .ValueGeneratedOnAdd() .HasColumnType("integer"); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("PresenceId")); + b.Property("Date") .HasColumnType("date"); + b.Property("GroupId") + .HasColumnType("integer"); + b.Property("IsAttedance") .HasColumnType("boolean"); b.Property("LessonNumber") .HasColumnType("integer"); - b.Property("GroupId") + b.Property("UserId") .HasColumnType("integer"); - b.Property("UserDaoUserId") - .HasColumnType("integer"); - - b.HasKey("UserId", "Date", "IsAttedance", "LessonNumber"); - - b.HasIndex("UserDaoUserId"); + b.HasKey("PresenceId"); b.ToTable("PresenceDaos"); }); @@ -91,17 +92,6 @@ namespace Demo.Migrations b.ToTable("Users"); }); - modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.PresenceDao", b => - { - b.HasOne("Demo.Data.RemoteData.RemoteDataBase.DAO.UserDao", "UserDao") - .WithMany() - .HasForeignKey("UserDaoUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("UserDao"); - }); - modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.UserDao", b => { b.HasOne("Demo.Data.RemoteData.RemoteDataBase.DAO.GroupDao", "Group") diff --git a/Demo/Migrations/20241025085326_InitialCreate.cs b/Demo/Migrations/20241101064613_InitialMigration.cs similarity index 79% rename from Demo/Migrations/20241025085326_InitialCreate.cs rename to Demo/Migrations/20241101064613_InitialMigration.cs index 643f15c..296c3ff 100644 --- a/Demo/Migrations/20241025085326_InitialCreate.cs +++ b/Demo/Migrations/20241101064613_InitialMigration.cs @@ -7,7 +7,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace Demo.Migrations { /// - public partial class InitialCreate : Migration + public partial class InitialMigration : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) @@ -25,6 +25,23 @@ namespace Demo.Migrations table.PrimaryKey("PK_Groups", x => x.Id); }); + migrationBuilder.CreateTable( + name: "PresenceDaos", + columns: table => new + { + PresenceId = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + UserId = table.Column(type: "integer", nullable: false), + IsAttedance = table.Column(type: "boolean", nullable: false), + Date = table.Column(type: "date", nullable: false), + LessonNumber = table.Column(type: "integer", nullable: false), + GroupId = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_PresenceDaos", x => x.PresenceId); + }); + migrationBuilder.CreateTable( name: "Users", columns: table => new @@ -45,33 +62,6 @@ namespace Demo.Migrations onDelete: ReferentialAction.Cascade); }); - migrationBuilder.CreateTable( - name: "PresenceDaos", - columns: table => new - { - UserId = table.Column(type: "integer", nullable: false), - IsAttedance = table.Column(type: "boolean", nullable: false), - Date = table.Column(type: "date", nullable: false), - LessonNumber = table.Column(type: "integer", nullable: false), - UserDaoUserId = table.Column(type: "integer", nullable: false), - GroupId = table.Column(type: "integer", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_PresenceDaos", x => new { x.UserId, x.Date, x.IsAttedance, x.LessonNumber }); - table.ForeignKey( - name: "FK_PresenceDaos_Users_UserDaoUserId", - column: x => x.UserDaoUserId, - principalTable: "Users", - principalColumn: "UserId", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_PresenceDaos_UserDaoUserId", - table: "PresenceDaos", - column: "UserDaoUserId"); - migrationBuilder.CreateIndex( name: "IX_Users_GroupId", table: "Users", diff --git a/Demo/Migrations/RemoteDatabaseContextModelSnapshot.cs b/Demo/Migrations/RemoteDatabaseContextModelSnapshot.cs index c4f2402..3ee588f 100644 --- a/Demo/Migrations/RemoteDatabaseContextModelSnapshot.cs +++ b/Demo/Migrations/RemoteDatabaseContextModelSnapshot.cs @@ -41,27 +41,28 @@ namespace Demo.Migrations modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.PresenceDao", b => { - b.Property("UserId") + b.Property("PresenceId") + .ValueGeneratedOnAdd() .HasColumnType("integer"); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("PresenceId")); + b.Property("Date") .HasColumnType("date"); + b.Property("GroupId") + .HasColumnType("integer"); + b.Property("IsAttedance") .HasColumnType("boolean"); b.Property("LessonNumber") .HasColumnType("integer"); - b.Property("GroupId") + b.Property("UserId") .HasColumnType("integer"); - b.Property("UserDaoUserId") - .HasColumnType("integer"); - - b.HasKey("UserId", "Date", "IsAttedance", "LessonNumber"); - - b.HasIndex("UserDaoUserId"); + b.HasKey("PresenceId"); b.ToTable("PresenceDaos"); }); @@ -88,17 +89,6 @@ namespace Demo.Migrations b.ToTable("Users"); }); - modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.PresenceDao", b => - { - b.HasOne("Demo.Data.RemoteData.RemoteDataBase.DAO.UserDao", "UserDao") - .WithMany() - .HasForeignKey("UserDaoUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("UserDao"); - }); - modelBuilder.Entity("Demo.Data.RemoteData.RemoteDataBase.DAO.UserDao", b => { b.HasOne("Demo.Data.RemoteData.RemoteDataBase.DAO.GroupDao", "Group") diff --git a/Demo/UI/GroupConsole.cs b/Demo/UI/GroupConsole.cs index dab1660..82a710c 100644 --- a/Demo/UI/GroupConsole.cs +++ b/Demo/UI/GroupConsole.cs @@ -47,13 +47,6 @@ namespace Demo.UI } } - public void RemoveGroup(string groupIdStr) - { - int groupId = int.Parse(groupIdStr); - _groupUseCase.RemoveGroupById(groupId); - Console.WriteLine($"Группа с ID: {groupId} удалена"); - } - // Метод для обновления названия группы public void UpdateGroupName(int groupId, string newGroupName) { diff --git a/Demo/UI/MainMenu.cs b/Demo/UI/MainMenu.cs index 2bd2018..34441d6 100644 --- a/Demo/UI/MainMenu.cs +++ b/Demo/UI/MainMenu.cs @@ -1,6 +1,7 @@ using Demo.domain.Models; using Demo.Domain.UseCase; using System; +using System.Globalization; namespace Demo.UI { @@ -33,16 +34,15 @@ namespace Demo.UI Console.WriteLine("=-= Команды с Группами =-="); Console.WriteLine("5. Вывести все группы"); Console.WriteLine("6. Добавить группу"); - Console.WriteLine("7. Удалить группу"); - Console.WriteLine("8. Изменить название группы"); - Console.WriteLine("9. Поиск группы по ID"); + Console.WriteLine("7. Изменить название группы"); + Console.WriteLine("8. Поиск группы по ID"); Console.WriteLine(); Console.WriteLine("=-= Команды Presence =-="); - Console.WriteLine("10. Сгенерировать посещаемость на день"); - Console.WriteLine("11. Сгенерировать посещаемость на неделю"); - Console.WriteLine("12. Показать посещаемость"); - Console.WriteLine("13. Отметить пользователя как отсутствующего"); - Console.WriteLine("14. Вывести всю посещаемость группы"); + Console.WriteLine("9. Сгенерировать посещаемость на день"); + Console.WriteLine("10. Сгенерировать посещаемость на неделю"); + Console.WriteLine("11. Показать посещаемость"); + Console.WriteLine("12. Отметить пользователя как отсутствующего"); + Console.WriteLine("13. Вывести всю посещаемость группы"); Console.WriteLine(); Console.WriteLine("0. Выход"); @@ -71,19 +71,19 @@ namespace Demo.UI } break; - //case "3": - // // Обновление пользователя по ID - // Console.Write("Введите ID пользователя для обновления: "); - // string updateIdInput = Console.ReadLine(); - // if (int.TryParse(updateIdInput, out int updateUserId)) - // { - // _userConsoleUI.UpdateUserById(updateUserId); - // } - // else - // { - // Console.WriteLine("Неверный формат ID"); - // } - // break; + case "3": + // Обновление пользователя по ID + Console.Write("Введите ID пользователя для обновления: "); + string updateIdInput = Console.ReadLine(); + if (int.TryParse(updateIdInput, out int updateUserId)) + { + _userConsoleUI.UpdateUserById(updateUserId); + } + else + { + Console.WriteLine("Неверный формат ID"); + } + break; case "4": // Поиск пользователя по ID @@ -112,13 +112,6 @@ namespace Demo.UI break; case "7": - // Удаление группы - Console.Write("Введите ID группы для удаления: "); - string groupIdForDelete = Console.ReadLine(); - _groupConsoleUI.RemoveGroup(groupIdForDelete); - break; - - case "8": // Изменение названия группы Console.Write("Введите ID группы для изменения: "); if (int.TryParse(Console.ReadLine(), out int groupId)) @@ -133,7 +126,7 @@ namespace Demo.UI } break; - case "9": + case "8": // Поиск группы Console.Write("Введите ID группы для поиска : "); if (int.TryParse(Console.ReadLine(), out int IdGroup)) @@ -142,7 +135,7 @@ namespace Demo.UI } break; - case "10": + case "9": // Генерация посещаемости на день Console.Write("Введите номер первого занятия: "); int firstLesson = int.Parse(Console.ReadLine()); @@ -155,7 +148,7 @@ namespace Demo.UI Console.WriteLine("Посещаемость на день сгенерирована."); break; - case "11": + case "10": // Генерация посещаемости на неделю Console.Write("Введите номер первого занятия: "); int firstLessonForWeek = int.Parse(Console.ReadLine()); @@ -168,7 +161,7 @@ namespace Demo.UI Console.WriteLine("Посещаемость на неделю сгенерирована."); break; - case "12": + case "11": // Отображение посещаемости Console.Write("Введите дату (гггг-мм-дд): "); DateTime date = DateTime.Parse(Console.ReadLine()); @@ -178,7 +171,7 @@ namespace Demo.UI _presenceConsoleUI.DisplayPresence(date, groupForPresenceView); break; - case "13": + case "12": // Отметить пользователя как отсутствующего Console.Write("Введите ID пользователя: "); userId = int.Parse(Console.ReadLine()); @@ -189,11 +182,22 @@ namespace Demo.UI Console.Write("Введите ID группы: "); int absGroupId = int.Parse(Console.ReadLine()); - _presenceConsoleUI.MarkUserAbsent(DateTime.Now, absGroupId, userId, firstAbsLesson, lastAbsLesson); + Console.Write("Введите дату (дд.мм.гггг): "); + string dateInput = Console.ReadLine(); + DateTime absenceDate; + + if (!DateTime.TryParseExact(dateInput, "d.M.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out absenceDate)) + { + Console.WriteLine("Ошибка: Введен некорректный формат даты. Пожалуйста, используйте формат дд.мм.гггг."); + return; // Завершает выполнение, если дата некорректна + } + _presenceConsoleUI.MarkUserAbsent(absenceDate, absGroupId, userId, firstAbsLesson, lastAbsLesson); Console.WriteLine("Пользователь отмечен как отсутствующий."); break; - case "14": + + + case "13": Console.Write("Введите ID группы: "); int groupIdForAllPresence = int.Parse(Console.ReadLine()); _presenceConsoleUI.DisplayAllPresenceByGroup(groupIdForAllPresence); diff --git a/Demo/UI/PresenceConsole.cs b/Demo/UI/PresenceConsole.cs index f941d34..209bb9e 100644 --- a/Demo/UI/PresenceConsole.cs +++ b/Demo/UI/PresenceConsole.cs @@ -20,7 +20,7 @@ namespace Demo.UI { try { - _presenceUseCase.GeneratePresenceDaily(firstLesson, lastLesson, groupId, date); + _presenceUseCase.GeneratePresenceDaily(firstLesson, lastLesson, groupId); Console.WriteLine("Посещаемость на день успешно сгенерирована."); } catch (Exception ex) @@ -56,26 +56,31 @@ namespace Demo.UI return; } + // Сортируем присутствия по номеру занятия и ID пользователя + var sortedPresences = presences.OrderBy(p => p.LessonNumber) + .ThenBy(p => p.UserId); + Console.WriteLine($"\nПосещаемость на {date.ToShortDateString()} для группы с ID {groupId}:"); Console.WriteLine("---------------------------------------------"); - int a = presences[0].LessonNumber; - foreach (var presence in presences) + + int previousLessonNumber = -1; // Инициализация для сравнения + foreach (var presence in sortedPresences) { - if (a != presence.LessonNumber) + if (previousLessonNumber != presence.LessonNumber) { Console.WriteLine("---------------------------------------------"); - a = presence.LessonNumber; + previousLessonNumber = presence.LessonNumber; } string status = presence.IsAttedance ? "Присутствует" : "Отсутствует"; Console.WriteLine($"Пользователь ID: {presence.UserId}, Занятие {presence.LessonNumber}: {status}"); } Console.WriteLine("---------------------------------------------"); - } catch (Exception ex) { Console.WriteLine($"Ошибка при выводе посещаемости: {ex.Message}"); } + } public void MarkUserAbsent(DateTime date, int groupId, int userId, int firstLesson, int lastLesson) @@ -90,35 +95,46 @@ namespace Demo.UI { try { - var presences = _presenceUseCase.GetAllPresenceByGroup(groupId); + // Получаем все посещения для группы + var presences = _presenceUseCase.GetAllPresenceByGroup(groupId); + + if (presences == null || presences.Count == 0) + { + Console.WriteLine($"Посещаемость для группы с ID {groupId} отсутствует."); + return; + } + + // Группируем по дате + var groupedPresences = presences.GroupBy(p => p.Date); - if (presences == null || !presences.Any()) - { - Console.WriteLine($"Посещаемость для группы с ID {groupId} отсутствует."); - return; - } - int a = presences[0].LessonNumber; - // Группируем по дате - var groupedPresences = presences.GroupBy(p => p.Date); - foreach (var group in groupedPresences) { Console.WriteLine("==================================================="); Console.WriteLine($"Дата: {group.Key.ToString("dd.MM.yyyy")}"); Console.WriteLine("==================================================="); - foreach (var presence in group) - { - if (a != presence.LessonNumber) - { - Console.WriteLine("---------------------------------------------------"); - a= presence.LessonNumber; - } - string status = presence.IsAttedance ? "Присутствует" : "Отсутствует"; - Console.WriteLine($"Пользователь ID: {presence.UserId}, Занятие {presence.LessonNumber}: {status}"); - } + // Группируем по занятию + var groupedByLesson = group.GroupBy(p => p.LessonNumber); - Console.WriteLine("---------------------------------------------------"); + foreach (var lessonGroup in groupedByLesson) + { + Console.WriteLine($"Занятие {lessonGroup.Key}:"); + + // Создаем HashSet для уникальных пользователей + var userIds = new HashSet(); + + foreach (var presence in lessonGroup) + { + // Проверяем, добавляется ли пользователь в HashSet + if (userIds.Add(presence.UserId)) + { + string status = presence.IsAttedance ? "Присутствует" : "Отсутствует"; + Console.WriteLine($"Пользователь ID: {presence.UserId}, Статус: {status}"); + } + } + + Console.WriteLine("---------------------------------------------------"); + } } } catch (Exception ex) diff --git a/Demo/UI/UserConsole.cs b/Demo/UI/UserConsole.cs index 21092e0..7050f7b 100644 --- a/Demo/UI/UserConsole.cs +++ b/Demo/UI/UserConsole.cs @@ -36,26 +36,27 @@ namespace Demo.UI } // Метод для обновления пользователя по ID - //public void UpdateUserById(int userId) - //{ - // try - // { - // var user = _userUseCase.FindUserById(userId); + public void UpdateUserById(int userId) + { + try + { + var user = _userUseCase.FindUserById(userId); - // Console.WriteLine($"Текущие данные: {user.FIO}, {user.Group.Name}"); - // Console.Write("\nВведите новое ФИО: "); - // string newFIO = Console.ReadLine(); - // user.FIO = newFIO; - // _userUseCase.UpdateUser(user); + Console.WriteLine($"Текущие данные: {user.FIO}"); + Console.Write("\nВведите новое ФИО: "); + string newFIO = Console.ReadLine(); - // Console.WriteLine("\nПользователь обновлен.\n"); - // } - // catch (Exception ex) - // { - // Console.WriteLine($"Ошибка: {ex.Message}\n"); - // } - //} + user.FIO = newFIO; + _userUseCase.UpdateUser(user); + + Console.WriteLine("\nПользователь обновлен.\n"); + } + catch (Exception ex) + { + Console.WriteLine($"Ошибка: {ex.Message}\n"); + } + } // Метод для поиска пользователя по ID public void FindUserById(int userId) @@ -63,7 +64,7 @@ namespace Demo.UI var user = _userUseCase.FindUserById(userId); if (user != null) { - Console.WriteLine($"\nПользователь найден: {user.ID}, {user.FIO}, {user.Group.Name}\n"); + Console.WriteLine($"\nПользователь найден: {user.UserId}, {user.FIO}, {user.Group.Name}\n"); } else { diff --git a/Demo/bin/Debug/net8.0/Demo.dll b/Demo/bin/Debug/net8.0/Demo.dll index fd50f629de542708e326a4668b429f3c1bb62be2..f9807dc6040b9ab4ec3b3bd3f468fa499b7e0686 100644 GIT binary patch literal 57856 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 z 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 delta 99 zcmZqJ!_fdlEsR^39!U9{FeCz@A%i7@5ko2vS^%LTgE>PQP}Gva04$aUq!Ss;7)%(9 f!744mI!u6~NkCRA5Ss$k8v|9CZ`YS*y2u0o4kQwS diff --git a/Demo/bin/Debug/net8.0/Demo.pdb b/Demo/bin/Debug/net8.0/Demo.pdb index 4972a2446c6682798127dacaca57ae839be55eeb..ca5d12fd72227387fdf2e61bc2bcab32db079337 100644 GIT binary patch delta 11562 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 diff --git a/Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs b/Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs index b949f2b..ebcad77 100644 --- a/Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs +++ b/Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Demo")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+4aa192ee8817fa90eef0a643199a140baea5f367")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5f424596e2b0fa84375965a237d76913c98a016f")] [assembly: System.Reflection.AssemblyProductAttribute("Demo")] [assembly: System.Reflection.AssemblyTitleAttribute("Demo")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Demo/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache b/Demo/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache index f0a4fd0..b8b98a7 100644 --- a/Demo/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache +++ b/Demo/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache @@ -1 +1 @@ -d0ff50a2b7329f08a99a7d850fd97c7e85ea6c3c244d5b7af843a712fd92af39 +e42cc116f635190b7c9988c97519c211c4b2432424ca6ac866ba04673b9f3fa7 diff --git a/Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache b/Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache index bc52d93..e982de8 100644 --- a/Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache +++ b/Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -30504035d845e5616feb21a777025026c55555e88052b83a111a265004d6549d +1e41011bf1bd18b43960533c1b9a8180853e639316cffb41dabd64b373687e5e diff --git a/Demo/obj/Debug/net8.0/Demo.dll b/Demo/obj/Debug/net8.0/Demo.dll index fd50f629de542708e326a4668b429f3c1bb62be2..f9807dc6040b9ab4ec3b3bd3f468fa499b7e0686 100644 GIT binary patch literal 57856 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 z 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 diff --git a/Demo/obj/Debug/net8.0/apphost.exe b/Demo/obj/Debug/net8.0/apphost.exe index 1bc7e2b1b6ce7350d709318a6afe39ff97c55306..2332d886c159824bad04dfb207b79998f4f6c254 100644 GIT binary patch delta 99 zcmZqJ!_fdlEsR^39!U9{GNdt>Fc<-`DT5`08AB?Noy1@O6isBX0E!wjm_ubufg(m= fehN^`45-==$V&#&7C;#TAkT~;ZM(iS(?uo#+Kmx- delta 99 zcmZqJ!_fdlEsR^39!U9{FeCz@A%i7@5ko2vS^%LTgE>PQP}Gva04$aUq!Ss;7)%(9 f!744mI!u6~NkCRA5Ss$k8v|9CZ`YS*y2u0o4kQwS diff --git a/Demo/obj/Debug/net8.0/ref/Demo.dll b/Demo/obj/Debug/net8.0/ref/Demo.dll index 37260fb30ed56391d6e48b59f42e828795769b9e..92f97d0bf2bf6774b0bb8bb7e439df73f5a2f946 100644 GIT binary patch literal 17920 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 e(<ZBXa?{{#->mI#5|jXzs^`}6-V1OEm7m08;W literal 17920 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 diff --git a/Demo/obj/Debug/net8.0/refint/Demo.dll b/Demo/obj/Debug/net8.0/refint/Demo.dll index 37260fb30ed56391d6e48b59f42e828795769b9e..92f97d0bf2bf6774b0bb8bb7e439df73f5a2f946 100644 GIT binary patch literal 17920 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 e(<ZBXa?{{#->mI#5|jXzs^`}6-V1OEm7m08;W literal 17920 zcmeHPdw5mVm0#!FNAA7J4R94vQMm+B6u2ZL!GH-QBm|=2nE+a~$;r)0xb;5beE>l^ zM)8G@wm#Zwt4?UNQ`=hYL#wS-C>9^ZKBj6vJI)N0sne>ht>b*tuiv!JZ>@b^A+$RF zG5w~WC!F71zqQtWt-a6Q=j?MYt3UJ!@)40A=R5BZJ&I30ng#zdjKEwu<6D*Vjqvj` zAJsaapV_@7RfrGebAx#!6Hgl1Y_1sZGvoPEHlE7H+tzl)Gr4{<5sgMpx3XThf~ZsT z)63rPw&JrHXB;OB{Hd#YLz4RQC+)?_jltog-fM^^%Rl$i zqRNH*$agKvBSbp`meTt%N>l;<%M#HkUj4ht%|s!OPY8UKhbJ;yQ~ltmozoV(-nLsa z(egym++Kv@;za-`Bql+8dX6|zZz5mFC!v!zj6h(Yr8qrDGjd4e&2$cq+$I{ui5OBF zPS4Sday|3|@ozW+zx(cz)8;R^r~TI3|7&CZUypn6Z@8%+H0>A>XyADj2hUA91*p53 z==ORdjg{}?h#bFzmUo@ET(ffEd1h-}qB>DqU0bu5GYn7~_{J8Pv`pB83(2?ZS%Cz@-WY3f6!{_ z1XX{y(lVUQIDdfi4xBv2PsQm&11s@)7S2xQIJwPy`f*OjNpx38#UV%yW!IDk>BoX| zgZc7F^!0L{WbYQuj^KZm1?kbUbHhRURgm#E!G{Dd5dC_Q_1nF5RF(kFx666x!3~=54 zKrFvOZ|jxxPV_Z@B{gV_vGUjaLAp9TEzD7>@F zX|egJMp$UlPs&@+)AhpMu2gJ^uwPhgg|O=)%C=fquV1kZ!Zw#Hb_wl4UA|Gd4a3Ms z{ladtSW4LUES8pZkB7EZa_Ko?Ke1Rr*kcyET-a+CyF%EnEw)SA{$QXUt@Y9MVhdN+ z2fhlnTi7Gv+jX|xD(s6EyHnVc7Q2_O)F#tG{T1VDCPYE^jlqX#seNUJwp`H$SJQvZ^VpHWc&@-NN=hCynR0)mroF|ti`o71uln#1q z%jkJe3C)zQ8Y=T}BpT`9^i*=9Sj|6{id0qt1e(D7t z0S2kw_Yq)iB;&|kqPa87`i}`dOqWS1JCN!sxEv1wP7O<&*N?1I;Ue&pEl> z5@F3s?ems~Yx^anO=%AS^FX@}oC90G1${d`3BAhayXDW0^RY|3xcqtORp}R(|5(z# zsI6ftMMmBq^;&+heF!&eR6Pjc9Df2V$` z!=8_J=`$SG8`0==n<39j^w~C}FGquPhQoe?7P;&&*qN5?DLNQV>T?`+AJ|zAyD^l~ z&$e@s2+nnEBe2;_MR%UZGp9R@-l{0+^KF|%*JT{fgk$4=U*NFmk@2&S4i+-l{Kh*arWt`Vxm-Uh!Fdsl(2T+^4tN40%4Nx7mzFqux z?bTP>w$LQs0ezLjPC%_)c7y*py~DBH=ATRslL(&Y*qV@w%T^&5mz@gR`HtsVu(|Ay zz8~nFjxFl{M-O`<@Kb%YV|zOAiih16Ie?ka8m*ywF?t*(HCyZ09@n4KUG|jDE0CRT zk$ym5=ddOn*SEvkU|a97b+Fm&RqbH;&-D$qP0H)CnZ(m&98Z^VJi8rFj;F&UmyM2X zS@|z@m#r%QwTE#$H#wdhPnU5#H#;_tr^`5=7dSSKr^`5=7dkeMr^BRXA98FQPnU5# zUB>ae$noTOy6lJH|IjaXY%hm@?=mUj5}syp90Ae5K$AQ2OTsfv9xF5eO8uAU;EWp=_%hs32e1mqarJgC9QN8~p zpUbq!EZ;{Q+m6TrU)p9!x7e4l8ND7}=F3{_RgK$_a~QXM$YI=CmvJQWPA*$~D|`jV zliOahZBpJ=$HtM^<}hyiu){bmJI1BE+_r@|E<0_eaa>%+arvkxU68J@S?I24r_W); z>0GwHe3Ng)_9V{bDw|1kueMp}k%~)vF56cz=wa7K^S)~w&s(EAJ?!?1>wMQbw)-k> zaoAHdDRh_bI?MJHor+oidfQV<-)%Fwie1K6vCH@>zQOV2tJr1NN5_0OI<{M*Uv`<4 zaFb)>8PjDvW4es5;+q{$zKUJ;MBowM#~jlU&SAHY$FC;C$q`)DZ2!*ecEET(frWA`|j}Af^_ExjMSaZ|3xJDVX_`uE*jm8 z{e30t^fvYiZ2iS}w$zBx)+@~u*qqVm25jSKbVU3g6U`uYW9)psESfR+=;G<4jQA^j zMf6;{kM2YcemsM4+IQEF_vu0oe#s$V<)B)`EtQs{_(%JLV*5Rjs`Bf3u8B ze}A}G`sMwlRjK~+NN{^iqx+pPpyIEVaEv0+E34OEMSF(Cw#6BT_9!}fG}_}(jX;%Z zVs5GwW#t%-ufx%r@z#k^I$LV4M$1I&`_rhN%{!w)qo<-e_CP0LH**?3PsBa%Nw^OU z6VInpfI)DhJc7MamTQ2MX|Z67V29v(!3zZq!4y!V%Yaj9Snw8L5Ia3a`N`OS;e1#h zr^OoUTYzU!2XHdQ=~Ai*%%%eUOgod3G&`8U6YiitLC4V$a5{Y)IE(H8&ZWD7we(NG zbFo*NpjP@V@O=6suuJq80b7yh*8;7Q=L)PvhqMm*EOIbJlcdWbn-y`}l(T|CKO!W5)?t}G^wqN9D z1rLkni1;57|0AN;u%aK*d^*?1r*nOLI@dWYI8&^%#5zl?vqXQEV2fB=#o8*?R?&9| z8e&a~b(i37(eDxcm}vHiykF$~lEY!q91+bC(P%!Yp-*avJK~>dGet8?G_yq0BAQmw zw2H{+sCcjBl4K&$1IukhebXj`XiRidY@lP_jBnfKWnZOd6)lk$h$?e zM>J!ixnDHJ~U zW{KP)a;wOO$VriR362Vm3GNl#CqDZ{J|uWpG)F|HGS1&87%v;6a{}?QFVWqBnPpO< z=$i#w1$zaPf+K>v1V;t;NUAZB_X_S8JS2EntVcwq5SOckxRkia&4RsxBO$KINQi4P zDw@55hXg6iY2$*;g1up$c}BvLDlDl)zgO^(AVnlqMA{f(pJvhY3XTYl3hos=BuM3w zO0Ze5S8$|U$|{$#M6*}$kRVk^D#2#K-U{~btziFut0mXILTA6S8zmdRB*50AwfD`>MYnSI3hSI zxL5FyAWaod!Dhi;!I7yFlc`ef34As2JEKb6vrWSHDkf7oR;DQ4bj9#CZz|TO6X;~D zUZ-I7Iu&cfY51Fg)gg|(K)e$4y@8eZ3IA__og&W{oZ^2Qnx6)K5Bx%eeV)eMs-%Hx-B0ARB(P)_mr$7!zrvo2}&IaCJu>k1J|B>ioXjBdDx-ExB)lHSF zYUpjnb&-|uIX>D6+#B5pyubXze%$LJRvIk=>U0ivoHcxPBmj8{l|eois8b_Wd5xNY zI=(DY4tW_+r)I=f!+Vh^N@u zyKmDVuSL)B9@N(Kg2Gr?x+|}?CG*HL0VH4!f0CoB-BBaq>K%MSJgfzMbsMFsg zLK=+%akq{*Y4kauPWK{C8r=uf>GOz_M*jfR=?io|_I zb$Srd(y?3r9Iz5^lXQ&sAJ9DVkMRAt_jnq2?s%ARjyie?4L4BQi*iJa$Pgq(#`XXBiUa~?*?e4Gi?ZUN3}oHe)x7vkjC?{zrqF#;Ch zJO^h3uFJ(Zm*6}XqoEOJ6Ry~$IG5q7#nHHQaZgWmPqh*jijeH-X-gG`(#CLW+9(v1 z5^lA}vMMF4b;q(QC9L(wvMMF4i;iVIrm{gik;JNTbx)05brz1QdaZ3;1fgR^wv;jR zMqk?OWp-J~C|aZ?Sxn`!(6;7HqiA-sdU+|8?l<#Lt{p-uc5qc~eO+b|rp{D>KU%v^ zZ(Q2Y(}VAL8R>#mqw1c8cGWDQ*4EV9!Xgm{dU{&2x$JNzS1NQ551BQ+3#q-7P2$7q zpISR77LImb*juaIEwAdHI@{e6s(b2f4GTwSP}{qR&D6L$*I!DTOQ~^PKD8Br=*SGE z&5W5XO7q*yqLE4$meQbE?7`PU3hIN|%6zUgWT|X<(9*S;nOtIH2Z_Elmo4PdCg{e3 znRnT0Bb8lkW=k-Le;fKHu>mQI=27BuqhKc5TGmP}+B?=tHTbiWgWttfO>z=XK4K9a zMhJBc7m8*k(V9!AP3iYSVx^fi^Qok2SifpmzcAGprLtw!FlFafbSSeWmXxMFmF<@V z%ZFj#IMk1Dy4>5wp?m1fZ`h^xUBlUk_!94g&dXek!W zej}U2BN+Fmhr_WI!It2l_UrOy!DPQKW2;N7nZhyJ-kVMH()6&S9%tFB!G|9GD zLqLMP#>l8zh~SBt@T|E_+9hO=2bW0bSF=0C35!O)D3aB~8%o(C8~Bo<)v07YSI7+% z6Dy!C4!7gGvgWp2{?gW5{#~qzj_g3*C=~OhWU&NiZ|D7)0c!c=G8ongD~@Exz~<5# zn@EFfg3r7ymprn2LG+By#vDI=}sHEPXehEi!W-;P-h zE!kjRR!Zf~ehh(ps;>lh+rjQdkEzYtWDW%inH7$jLndwUpcc+S8$F+TY z)fYWUyNx`?pVJF&o^}rHsOTm$U%)F)#XJsxOtsP5d<~G+ zX6^VWhV{TyV~06sib0~jGPuepY$1D?*cWqqF3;EfU%uEdt*5P?BUw?U6eX%rp%ikN z^{3O6cVJLE&csiB}$pBa|eKy zSwqW-qB&qKBWi(LlPk98O4ySp<+XQs)q|UbuQ4g(tD0RcN8sdLDevW^>80Z9Ys)!mWU-bB$8O# zNm|y?k1NL>Hfx5P1!yydC#c)-;4n-)zpTx&z++Sf zggXsVhuy~>U5`EPJ-Va2lsY&b9)})|iifjV9syS1W(eQ8ur4J_#W#a$M)fMxgE~$4 zorXWIX(3;nv;c%DQ-@pk$nBxv)Yxi0Ru^J+M_94#Q#LZaYnq~$O^ucGsj*=#_ECk?p&z+Y z16%_bZ#&INGqT&~O{CKqQtjq&Geo!8KPT6X&-1+{;-;bvv5{N2siO?{TFo!U zn)P4^Au3wY*{-wsQH$*iSwb;X!I|9Yi|vdRW2=y$!55seo_(KTc)`kVXKW|aLw0my z+u_RHuoGt^oBlf>TRZrw2Ht(kJ`cJQof3-E)YuA0(!X^<^lT_rhaT4*QxQr%6f1Iq zVu($Z;yj0kL8vku_i3@}*qqor(asCS{o0iEAv6JI2;q1@@sQZ71yh0yE7}k7F>PQrkHnWQWYAtmk|nh=ei0=8%=Z$zc^TjIHAF%V#A{od+*~rmW|}1a*WY zPBC_dH;c_8Hiw~5IfpqcBM)e?ok8S?@H(ajyK)WEHs#--+BSr2^q3W|Iwy}t&Z9Bb zs1y$)iV-PjghfZW(^aB0E*|FXu5vqa!C-pKj+R@co!q>Q(!7n_8ty6XD*Plxy4DsN zZK1(WTDa0T2T_`XD9u5X<{&@-gagnVo?|!Pks6gGRTe9xosMpMh;`_bot)D~&ZHO$ z+2vb8qpfMc?_W?C9H(j6a_rVm*qk?p*5tCz^4Yy5pW9Z@;8!N&*3a0a(TRyQE4ulK zwqMa8JwS=L!2TGkFZ95xsN1V1Od6r!0#1NKn;FIgg>HM zjS@oU))_|4;)SN!&`@*EfU&sRGzY4UMRoY8(PE>fuDZ`KjrxJwMd#p$KXO5t8uefS zQjgHNd?B72h!=7HR)}v)6}QCm)^lh)BadH&xRE#G{3F&vX=o^y$NmKWj+Jk6;#<`d zA!jh0E9K)!>xnjj035H;r11}O_+1k!025w_;~j$9zg?=)V($WEFL9pjCfQ>e|FCVX zpF}e?I%Q$?!n&I3h4s}9^|cEZ^^AYWCiDuvKrrEu-<*21^Q_;1v8tWrW|k%%_HV_M z1#!%;*lzNE8D$DdbhVk_ha^7UnN7{jB7Fe=pCX{+%^FdhXyinEuEQrjJckTn{t5Dk zM+uQH`Uy(Wvt`Q!lk(q*E8!C(L~rPDvW_?K&3D2(p)S1V*@QPJ8z6PyoyZ#S4q!WE zKEC6B^G~W=m6u%y{=FX`{941dhyu_ix=na%lt(@(yfMPI6yXsUzscg`bV=0>s{w5R zc7uxW%YmumA^c*2^X-B@4@;H?kCD?H@u|jJ5%pJxH&mFl@b)Btw5`Z5gWu(F8N+Ci z0cJ|}ZTQSsby+CBb}iXbz_(zy%%O30@}{ZAT+MIiRLeFY4W0)*^{>JEnri1HyshE4 ze;k3L_-0X;w5LXP-UOqaMm9BI7K--zEaf4yc-+aXqaV-2crY1PCtiiC;#n-(O;xLhvBIZQN!dtC7(+u< z3ser+r7jeCd-OflXJM73L)irryT>Tg;?VHAjCz{={5lBRv4dE!-&-qd?OfwH+3+x^`>i=bsLG;&xA@zSjT(Ib`Re=x6{cA?xe*i>KTMhsK