using HotelContracts.BindingModels; using HotelContracts.BusinessLogicsContracts; using HotelContracts.SearchModels; using HotelDatabaseImplement.Models; 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; using System.Xml.Linq; namespace HotelView { public partial class FormMain : Form { private readonly IBookingLogic _logic; private readonly IRoomLogic _logicR; private readonly IClientLogic _logicC; public FormMain(IBookingLogic logic, IRoomLogic logicR, IClientLogic logicC) { InitializeComponent(); _logic = logic; _logicR = logicR; _logicC = logicC; } private void FormMain_Load(object sender, EventArgs e) { LoadData(); } private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void LoadData() { var _list = _logic.ReadList(null); if (_list != null) { dataGridView.DataSource = _list; dataGridView.Columns["RoomId"].Visible = false; dataGridView.Columns["ClientId"].Visible = false; dataGridView.Columns["Number"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; dataGridView.Columns["Surname"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } } private void clientToolStripMenuItem_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormClients)); if (service is FormClients form) { form.ShowDialog(); } } private void postToolStripMenuItem_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormPosts)); if (service is FormPosts form) { form.ShowDialog(); } } private void workerToolStripMenuItem_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormWorkers)); if (service is FormWorkers form) { form.ShowDialog(); } } private void roomToolStripMenuItem_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormRooms)); if (service is FormRooms form) { form.ShowDialog(); } } private void buttonCreateBooking_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormBooking)); if (service is FormBooking form) { form.ShowDialog(); LoadData(); } } private void buttonTakeBookingInWork_Click(object sender, EventArgs e) { if (dataGridView.SelectedRows.Count == 1) { int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); try { var operationResult = _logic.TakeBookingInWork(new BookingBindingModel { Id = id, Status = Enum.Parse(dataGridView.SelectedRows[0].Cells["Status"].Value.ToString()), }); if (!operationResult) { throw new Exception("Ошибка при сохранении. Дополнительная информация в логах."); } LoadData(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void buttonBookingReady_Click(object sender, EventArgs e) { if (dataGridView.SelectedRows.Count == 1) { int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); try { var operationResult = _logic.FinishBooking(new BookingBindingModel { Id = id, Status = Enum.Parse(dataGridView.SelectedRows[0].Cells["Status"].Value.ToString()), }); if (!operationResult) { throw new Exception("Ошибка при сохранении. Доп информация в логах."); } LoadData(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void buttonIssuedBooking_Click(object sender, EventArgs e) { if (dataGridView.SelectedRows.Count == 1) { int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); try { var operationResult = _logic.DeliveryBooking(new BookingBindingModel { Id = id, Status = Enum.Parse(dataGridView.SelectedRows[0].Cells["Status"].Value.ToString()), }); if (!operationResult) { throw new Exception("Ошибка при сохранении. Доп информация в логах."); } LoadData(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void button1_Click(object sender, EventArgs e) { try { DateTime start = DateTime.Now; var elementR = _logicR.ReadElement(new RoomSearchModel { Number = 1 }); var elementC = _logicC.ReadElement(new ClientSearchModel { Name = "Игооооорь" }); for (int i = 0; i < 1000; i++) { var operationResult = _logic.Create(new BookingBindingModel { RoomId = elementR?.Id ?? 0, ClientId = elementC?.Id ?? 0, ArrivalDate = DateTime.Now, DepartureDate = DateTime.Now, NumberHoursSpent = 5, Status = HotelDataModels.Enums.AcceptanceStatus.Неизвестен, TotalCost =123 }); } DateTime stop = DateTime.Now; LoadData(); MessageBox.Show((stop - start).Milliseconds.ToString(), "Test", MessageBoxButtons.OK); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void button2_Click(object sender, EventArgs e) { try { DateTime start = DateTime.Now; int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); var element = _logic.ReadElement(new BookingSearchModel { Id = id }); for (int i = id; i < id + 1000; i++) { var operationResult = _logic.Delete(new BookingBindingModel { Id = i, }); } DateTime stop = DateTime.Now; LoadData(); MessageBox.Show((stop - start).Milliseconds.ToString(), "Test", MessageBoxButtons.OK); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void button3_Click(object sender, EventArgs e) { try { DateTime start = DateTime.Now; int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); var element = _logic.ReadElement(new BookingSearchModel { Id = id }); var elementR = _logicR.ReadElement(new RoomSearchModel { Number = 1 }); var elementC = _logicC.ReadElement(new ClientSearchModel { Name = "Игооооорь" }); for (int i = id; i < id + 1000; i++) { var operationResult = _logic.Update(new BookingBindingModel { RoomId = elementR?.Id ?? 0, ClientId = elementC?.Id ?? 0, ArrivalDate = DateTime.Now, DepartureDate = DateTime.Now, NumberHoursSpent = 5, Status = HotelDataModels.Enums.AcceptanceStatus.Неизвестен, TotalCost = 100 }); } DateTime stop = DateTime.Now; LoadData(); MessageBox.Show((stop - start).Milliseconds.ToString(), "Test", MessageBoxButtons.OK); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }