public void ShowDetails(Project project) { if (project == null) { Console.WriteLine("The project is not existing"); throw new ArgumentNullException(); } //------------------------------------------------------- Console.Clear(); Console.WriteLine($"ID: {project.ProjectID}"); Console.WriteLine(); Console.WriteLine($"Project name: {project.Name}"); Console.WriteLine(); Console.WriteLine($"Project description: {project.Description}"); Console.WriteLine(); Console.WriteLine($"Project start date: {project.StartDate}"); Console.WriteLine(); Console.WriteLine($"Project end date: {project.EndDate}"); Console.WriteLine(); Console.WriteLine("Employees for current project: "); Console.WriteLine(); foreach (var emp in project.Employees) { Console.WriteLine($"{emp.FirstName} {emp.LastName}"); } while (true) { var key = Console.ReadKey(); switch (key.Key.ToString()) { case "Escape": var backCommand = new BackToProjectMenu(context); backCommand.ReturnToBaseMenu(); break; } } }
public void ListAll(SoftUniEntities context) { int pageSize = 14; var projects = context.Projects.ToList(); int page = 0; int maxPages = (int)Math.Ceiling(projects.Count / (double)pageSize); int pointer = 1; while (true) { Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; Console.Clear(); Console.WriteLine($" ID | Project Name (Page {page + 1} of {maxPages})"); Console.WriteLine("----+----------------------------"); int current = 1; foreach (var proj in projects.Skip(pageSize * page).Take(pageSize)) { Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; if (current == pointer) { Console.BackgroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.Black; } Console.WriteLine($"{proj.ProjectID,4}| {proj.Name}"); current++; } var key = Console.ReadKey(); switch (key.Key.ToString()) { case "Enter": //var currentProject = projects.Skip(pageSize * page + pointer - 1).First(); //ShowDetails(currentProject); //Console.WriteLine("Enter pressed"); break; case "UpArrow": if (pointer > 1) { pointer--; } else if (page > 0) { page--; pointer = pageSize; } break; case "DownArrow": if (pointer < pageSize) { pointer++; } else if (page + 1 <= maxPages) { page++; pointer = 1; } break; case "Escape": var backCommand = new BackToProjectMenu(context); backCommand.ReturnToBaseMenu(); break; } } }