using ConsoleTableExt; using Subd; using System.Diagnostics; class Program { public static void Main(string[] args) { string text; using (var sr = new StreamReader("D:\\сборник говуза\\СУБД\\prog\\Subd\\EnterText.txt")) { text = sr.ReadToEnd(); } using var context = new Onlinecinema2Context(); Controller controller = new(context); string operation = ""; do { Console.WriteLine(text); operation = Console.ReadLine() ?? ""; switch (operation) { case "0": break; case "1": controller.GetFilms(); break; case "2": controller.GetDirectors(); break; case "3": controller.GetStudios(); break; case "4": controller.GetUsers(); break; case "5": Console.WriteLine("Введите никнейм)"); User User = new() { Nikname = Console.ReadLine(), }; controller.AddUser(User); break; case "6": Test(controller, context); break; case "7": Console.WriteLine($"Введите Id фильма и Id пользователя"); var IdUser = Convert.ToInt32(Console.ReadLine()); var IdFilm = Convert.ToInt32(Console.ReadLine()); var review = controller.GetReview(IdUser, IdFilm); Console.WriteLine($"1 для изменения, 2 для удаления"); var r = Console.ReadLine(); if (r == "1") { Console.WriteLine($"Введите новый текст ревью"); var s = Console.ReadLine(); review.Reviev = s; controller.UpdateReview(review); } if (r == "2") { controller.RemoveReview(review); } else { Console.WriteLine($"Такой команды нет"); } break; default: Console.WriteLine("Некорректно введенный номер операции"); break; } } while (operation != "0"); } public static void Test(Controller controller, Onlinecinema2Context context) { var result = new[] { new { Name = "1", timems = MeasureTime(controller.GetFilms)}, new { Name = "2", timems = MeasureTime(controller.GetDirectors)}, new { Name = "3", timems = MeasureTime(controller.GetStudios)}, new { Name = "4", timems = MeasureTime(controller.GetUsers)}, }.ToList(); ConsoleTableBuilder.From(result).ExportAndWriteLine(); } public static double MeasureTime(Action action, int count = 10) { long sumTime = 0; Stopwatch stopwatch = new(); for (int i = 0; i < count; i++) { stopwatch.Start(); action.Invoke(); stopwatch.Stop(); sumTime += stopwatch.ElapsedMilliseconds; } return sumTime / count; } }