using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MTP_UManager { static class Renderer { public static void RenderNewPage() { Console.Clear(); Console.WriteLine("[Университет]"); Console.WriteLine(); } public static string RenderMenu(string[] menuItems) { Console.WriteLine("Меню:"); for (int i = 0; i < menuItems.Length; i++) { Console.WriteLine($"{i + 1}. {menuItems[i]}"); } Console.WriteLine(); Console.Write("Ввод: "); return Console.ReadLine(); } // Login public static void RenderLoginPageMessage() { RenderNewPage(); Console.WriteLine("Введите данные для входа в приложение"); Console.WriteLine(); DataManipulator.Login(); } // Login -> Main Menu public static void RenderMainPageMessage(Person user) { RenderNewPage(); Console.WriteLine($"Добро пожаловать, {user.Username}"); Console.WriteLine($"Ваш статус: {user.Status}"); Console.WriteLine(); } public static void RenderMainPage(Person user) { RenderMainPageMessage(user); DataManipulator.CheckUserChoiceInMainPageMenu(user, RenderMenu(DataGetter.GetMainPageMenuItems())); } public static void RenderLoginFailedError() { RenderNewPage(); Console.WriteLine("Введённой вами комбинации логига и пароля не существует!"); Console.WriteLine("Нажмите любую клавишу..."); Console.ReadKey(); RenderLoginPageMessage(); } // Login -> Main Menu -> Courses List public static void RenderCoursesListPageMessage(Person user) { RenderNewPage(); Console.WriteLine($"Список курсов для {user.Username}:"); Console.WriteLine(); } public static void RenderCoursesListPage (Student user) { RenderCoursesListPageMessage(user); foreach (string courseID in user.AvailableCoursesID) { GetCourseInfo(user, courseID); } DataManipulator.CheckUserChoiceInCoursesListPageMenu(user, RenderMenu(DataGetter.GetCoursesListPageMenuItems())); } public static void GetCourseInfo(Student user, string courseID) /**/ { //TODO // Get this information from the database by the ID of course. string name = "None", description = "None", teacher = "None", status = "None"; if (user.FinishedCoursesID.Contains(courseID)) status = "Завершен"; else if (user.TakenCoursesID.Contains(courseID)) status = "Изучается"; Console.WriteLine($"[{courseID}] {name}"); Console.WriteLine($"---ОПИСАНИЕ: {description}"); Console.WriteLine($"---ПРЕПОДАВАТЕЛЬ: {teacher}"); Console.WriteLine($"---СТАТУС: {status}"); } // Login -> Main Menu -> Courses List -> Sign Up For Course public static void RenderSignUpForCoursePageMessage(Student user) { RenderNewPage(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Запись на учебный курс"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Введите ID курса или return, чтобы вернуться назад"); Console.Write("Ввод: "); string whatCourse = Console.ReadLine(); RenderSignUpForCoursePage(user, whatCourse); } public static void RenderSignUpForCoursePage(Student user, string whatCourse) { List coursesIDArray = user.AvailableCoursesID; bool doesCourseExist = false; // Does the user want to return or else does exist the course he choosed? if (whatCourse == "return") { RenderCoursesListPage(user); return; } else foreach (string courseID in coursesIDArray) if (whatCourse == courseID) { doesCourseExist = true; break; } // Let's sign up for that course! if (doesCourseExist) { DataManipulator.SignUpForCourse(user, whatCourse); RenderCoursesListPageMessage(user); } else { RenderSignUpForCoursePageMessage(user); } } // Login -> Main Menu -> Courses List -> Leave Course public static void RenderLeaveCoursePageMessage(Student user) { RenderNewPage(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Покинуть учебный курс"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Введите ID курса или return, чтобі вернуться назад"); Console.Write("Ввод: "); string whatCourse = Console.ReadLine(); RenderLeaveCoursePage(user, whatCourse); } public static void RenderLeaveCoursePage(Student user, string whatCourse) { List signedUpCoursesIDArray = user.TakenCoursesID; bool doesCourseExist = false; // Does the user want to return or else does exist the course he choosed? if (whatCourse == "return") { RenderCoursesListPage(user); return; } else foreach (string courseID in signedUpCoursesIDArray) if (whatCourse == courseID) { doesCourseExist = true; break; } // Let's leave that course! if (doesCourseExist) { DataManipulator.LeaveCourse(user, whatCourse); RenderCoursesListPage(user); } else { RenderSignUpForCoursePageMessage(user); } } // Login -> Main Menu -> Courses Stats public static void RenderStudentStatsPageMessage(Student user) { RenderNewPage(); Console.WriteLine($"Статистика студента {user.Username}"); Console.WriteLine(); } public static void RenderStudentStatsPage(Student user) { RenderStudentStatsPageMessage(user); Console.WriteLine($"|Курсов на изучении | {user.TakenCoursesID.Count}|"); Console.WriteLine($"|Завершенных kурсов | {user.FinishedCoursesID.Count}|"); DataManipulator.CheckUserChoiceInStudentStatsPageMenu(user, RenderMenu(DataGetter.GetStudentStatsPageMenuItems())); } } }