using System.ComponentModel.DataAnnotations; using System.Text; using Demo.Domain.Models; using Demo.Domain.UseCase; namespace Demo.UI { public class UserConsoleUI { IUserUseCase _userUseCase; public UserConsoleUI(IUserUseCase userUseCase) { _userUseCase = userUseCase; } public void DisplayAllUsers() { StringBuilder userOutput = new StringBuilder(); foreach (var user in _userUseCase.GetAllUsers()) { userOutput.AppendLine($"{user.Guid}\t{user.FIO}\t{user.Group.Name}"); } Console.WriteLine(userOutput); } public void RemoveUserByGuid(Guid guidUser) { string output = _userUseCase.RemoveUserByGuid(guidUser) ? "Пользователь удален" : "Пользователь не удален"; Console.WriteLine(output); } public void UpdateUserByGuid(User user) { try { User output = _userUseCase.UpdateUser(user); StringBuilder userOutput = new StringBuilder(); userOutput.AppendLine($"Обновленный пользователь: {output.Guid}\t{output.FIO}\t{output.Group.Name}"); Console.WriteLine(userOutput); } catch (Exception ex) { Console.WriteLine($"Ошибка при обновлении пользователя: {ex.Message}"); } } public void DisplayUserByGuid(Guid guid){ User output = _userUseCase.GetUserByGuid(guid); StringBuilder userOutput = new StringBuilder(); userOutput.AppendLine($"{output.Guid}\t{output.FIO}\t{output.Group.Name}"); Console.WriteLine(userOutput); } } // public class GroupConsoleUI // { // IGroupUseCase _groupUseCase; // IUserUseCase _userUseCase; // IPresenceUseCase _presenceUseCase; // public GroupConsoleUI(IGroupUseCase groupUseCase, IUserUseCase userUseCase, IPresenceUseCase presenceUseCase){ // _groupUseCase = groupUseCase; // _userUseCase = userUseCase; // _presenceUseCase = presenceUseCase; // } // public void DisplayAllGroups(){ // StringBuilder userOutput = new StringBuilder(); // foreach (var group in _groupUseCase.GetAllGroups()) // { // userOutput.AppendLine($"{group.ID}\t{group.Name}"); // } // Console.WriteLine(userOutput); // } // public void DisplayGroupByID(int ID){ // StringBuilder userOutput = new StringBuilder(); // var group = _groupUseCase.GetGroupById(ID); // { // userOutput.AppendLine($"{group.ID}\t{group.Name}"); // } // Console.WriteLine(userOutput); // } // public void CreateNewGroup(string Name){ // string output = _groupUseCase.CreateGroup(Name) ? "Группа создана" : "Группа не создана"; // Console.WriteLine(output); // } // public void UpdateGroupName(Group group) // { // try // { // Group output = _groupUseCase.UpdateGroup(group); // StringBuilder groupOutput = new StringBuilder(); // groupOutput.AppendLine($"Обновленная группа: {output.ID}\t{output.Name}"); // Console.WriteLine(groupOutput); // } // catch (Exception ex) // { // Console.WriteLine($"Ошибка при обновлении группы: {ex.Message}"); // } // } // public void RemoveGroupByID(int ID){ // string output = _groupUseCase.RemoveGroupByID(ID) ? "Группа удалена" : "Группа не удалена"; // Console.WriteLine(output); // } // public void DisplayAllBoutGroup(int groupID){ // var users = _userUseCase.GetUsersByGroupID(groupID); // Console.WriteLine($"Группа: {groupID}\tКоличество учеников: {users.Count}"); // var presencesByGroup = _presenceUseCase.GetPresenceByGroup(groupID); // var presenceFalseByGroup = _presenceUseCase.GetFalsePresenceByGroup(groupID); // var precentePresenceGroup = 100 - Math.Round((double)presenceFalseByGroup.Count / presencesByGroup.Count * 100); // Console.WriteLine($"Количество занятий: {presencesByGroup.Count}\tОбщий процент посещаемости: {precentePresenceGroup}"); // foreach(var user in _userUseCase.GetUsersByGroupID(groupID)){ // var countPresences = _presenceUseCase.GetPresenceByUser(user.Guid); // var countFalsePresences = _presenceUseCase.GetFalsePresenceByUser(user.Guid); // var precentePresenceUser = 100 - Math.Round((double)countFalsePresences.Count / countPresences.Count * 100); // if (precentePresenceUser < 40) // { // Console.ForegroundColor = ConsoleColor.Red; // Console.WriteLine($"FIO: {user.FIO}\tКоличество посещённых занятий: {countPresences.Count - countFalsePresences.Count}\tКоличество пропущенных занятий: {countFalsePresences.Count}\tПроцент посещаемости: {precentePresenceUser}"); // Console.ResetColor(); // } // else // { // Console.WriteLine($"FIO: {user.FIO}\tКоличество посещённых занятий: {countPresences.Count - countFalsePresences.Count}\tКоличество пропущенных занятий: {countFalsePresences.Count}\tПроцент посещаемости: {precentePresenceUser}"); // } // } // } // } // public class PresenceConsoleUI{ // IPresenceUseCase _presenceUseCase; // public PresenceConsoleUI (IPresenceUseCase presenceUseCase){ // _presenceUseCase = presenceUseCase; // } // public void DisplayPresenceByGroup(int groupID){ // StringBuilder stringBuilder = new StringBuilder(); // foreach(Presence presence in _presenceUseCase.GetPresenceByGroup(groupID)){ // stringBuilder.AppendLine($"{presence.User.FIO}, {presence.User.Group.Name}, {presence.IsAttedance}, {presence.Date}, {presence.LessonNumber}"); // } // Console.WriteLine(stringBuilder); // } // public void DisplayPresenceByGroupByTime(int groupID, DateOnly date){ // StringBuilder stringBuilder = new StringBuilder(); // foreach(Presence presence in _presenceUseCase.GetPresenceByGroupByTime(groupID, date)){ // stringBuilder.AppendLine($"{presence.User.FIO}, {presence.User.Group.Name}, {presence.IsAttedance}, {presence.Date}, {presence.LessonNumber}"); // } // Console.WriteLine(stringBuilder); // } // public void GeneratePresence(int firstLesson, int lastLesson, int groupID, DateOnly date){ // string output = _presenceUseCase.GeneratePresence(firstLesson, lastLesson, groupID, date) ? "Сгенерированно" : "Не сгенерированно"; // Console.WriteLine(output); // } // public void GeneratePresenceWeek(int firstLesson, int lastLesson, int groupID, DateOnly date){ // string output = _presenceUseCase.GeneratePresenceWeek(firstLesson, lastLesson, groupID, date) ? "Сгенерированно" : "Не сгенерированно"; // Console.WriteLine(output); // } // public void IsAttedance(int firstLesson, int lastLesson, DateOnly date, Guid UserGuid){ // string output = _presenceUseCase.IsAttedance(firstLesson, lastLesson, date, UserGuid) ? "Обновлено" : "Не обновлено"; // Console.WriteLine(output); // } // } }