using SportCompetitionsContracts.BindingModels; using SportCompetitionsContracts.BusinessLogicsContracts; using SportCompetitionsDatabaseImplement; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace SportCompetitionsView { public partial class FormMain : Form { private ICompetitionLogic _logicC; private ITeamLogic _logicT; public FormMain(ITeamLogic logicT, ICompetitionLogic logicC) { InitializeComponent(); _logicT = logicT; _logicC = logicC; } private void CompetitionToolStripMenuItem_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormCompetitions)); if (service is FormCompetitions form) { form.ShowDialog(); } } private void TeamsToolStripMenuItem_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormTeams)); if (service is FormTeams form) { form.ShowDialog(); } } private void MembersToolStripMenuItem_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormMembers)); if (service is FormMembers form) { form.ShowDialog(); } } private void RecordsToolStripMenuItem_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormRecords)); if (service is FormRecords form) { form.ShowDialog(); } } private void ResultsToolStripMenuItem_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormResults)); if (service is FormResults form) { form.ShowDialog(); } } private void buttonTest1_Click(object sender, EventArgs e) { DateTime startCreation = DateTime.Now; for (int i = 1; i <= 100; i++) { CompetitionBindingModel model = new CompetitionBindingModel() { Id = i + 100, CompetitionName = "Соревнование " + i, CompetitionDateHolding = DateTime.Now, CompetitionCity = "Город " + i }; _logicC.Create(model); } DateTime stopCreation = DateTime.Now; TimeSpan creationTime = stopCreation - startCreation; MessageBox.Show($"Время создания: {creationTime}", "Test", MessageBoxButtons.OK); } private void buttonTest2_Click(object sender, EventArgs e) { DateTime startDeletion = DateTime.Now; for (int i = 1; i <= 100; i++) { _logicC.Delete(new CompetitionBindingModel { Id = i + 100 }); } DateTime stopDeletion = DateTime.Now; TimeSpan deletionTime = stopDeletion - startDeletion; MessageBox.Show($"Время удаления: {deletionTime}", "Test", MessageBoxButtons.OK); } private void button_Click(object sender, EventArgs e) { DateTime start = DateTime.Now; // Записываем время начала выполнения запроса using (var db = new SportCompetitionsDatabase()) { var query = from member in db.Members join team in db.Teams on member.TeamId + 1 equals team.Id select new { member.MemberFCs, member.MemberBirthDate, member.MemberGender, team.TeamName, team.TeamCountry }; var result = query.ToList(); DateTime stop = DateTime.Now; // Записываем время завершения выполнения запроса TimeSpan queryTime = stop - start; // Вычисляем время выполнения запроса // Создаем новую форму для отображения результатов var form = new Form(); form.Width = 800; form.Height = 600; // Создаем DataGridView var dataGridView = new DataGridView(); dataGridView.Dock = DockStyle.Fill; dataGridView.AutoGenerateColumns = true; dataGridView.DataSource = result; // Добавляем DataGridView на форму form.Controls.Add(dataGridView); // Отображаем форму form.ShowDialog(); // Выводим сообщение с замером времени выполнения запроса MessageBox.Show($"Время выполнения запроса: {queryTime.TotalMilliseconds} мс", "Время запроса", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } }