subd/Subd/Program.cs

106 lines
3.6 KiB
C#

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;
}
}