diff --git a/ProjectLibrary/Entites/Book_Orders.cs b/ProjectLibrary/Entites/Book_Orders.cs index 4fe2865..6f7c6e2 100644 --- a/ProjectLibrary/Entites/Book_Orders.cs +++ b/ProjectLibrary/Entites/Book_Orders.cs @@ -11,7 +11,7 @@ namespace ProjectLibrary.Entites public int BookID { get; private set; } public int OrderID { get; private set; } - public static Book_Orders CreateEntity(int bookID, int orderID) + public static Book_Orders CreateEntity(int orderID,int bookID ) { return new Book_Orders { diff --git a/ProjectLibrary/Entites/Book_library.cs b/ProjectLibrary/Entites/Book_library.cs index 59c8984..63133f1 100644 --- a/ProjectLibrary/Entites/Book_library.cs +++ b/ProjectLibrary/Entites/Book_library.cs @@ -12,6 +12,8 @@ namespace ProjectLibrary.Entites public int LibraryID { get; private set; } public int Count { get; private set; } + + public static Book_Library CreateEntity(int bookID, int libraryID, int count) { return new Book_Library diff --git a/ProjectLibrary/Entites/Library.cs b/ProjectLibrary/Entites/Library.cs index d8c3514..0cc6ead 100644 --- a/ProjectLibrary/Entites/Library.cs +++ b/ProjectLibrary/Entites/Library.cs @@ -1,4 +1,5 @@ -using System; +using ProjectLibrary.Forms; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -11,14 +12,20 @@ namespace ProjectLibrary.Entites public int Id { get; private set; } public string Name { get; private set; } = string.Empty; public string Address { get; private set; } = string.Empty; + public IEnumerable BookLibrary + { + get; + private set; + } = []; - public static Library CreateEntity(int id, string name, string address) + public static Library CreateEntity(int id, string name, string address, IEnumerable bookLibrary) { return new Library { Id = id, Name = name ?? string.Empty, - Address = address ?? string.Empty + Address = address ?? string.Empty, + BookLibrary = bookLibrary }; } } diff --git a/ProjectLibrary/Entites/Orders.cs b/ProjectLibrary/Entites/Orders.cs index 7198f0e..2065d1f 100644 --- a/ProjectLibrary/Entites/Orders.cs +++ b/ProjectLibrary/Entites/Orders.cs @@ -1,4 +1,5 @@ -using System; +using Microsoft.VisualBasic; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -9,18 +10,26 @@ namespace ProjectLibrary.Entites public class Orders { public int Id { get; private set; } - public int OrderDate { get; private set; } - public int ReturnDate { get; private set; } + public DateTime OrderDate { get; private set; } + public DateTime ReturnDate { get; private set; } public int ReaderID { get; private set; } - public static Orders CreateEntity(int id, int orderDate, int returnDate, int readerID) + public IEnumerable BookOrders + { + get; + private set; + } = []; + + + public static Orders CreateEntity(int id, DateTime orderDate, DateTime returnDate, int readerID, IEnumerable bookOrders) { return new Orders { Id = id, OrderDate = orderDate, ReturnDate = returnDate, - ReaderID = readerID + ReaderID = readerID, + BookOrders = bookOrders }; } } diff --git a/ProjectLibrary/Entites/Reader.cs b/ProjectLibrary/Entites/Reader.cs index 5fd23d1..c46b5af 100644 --- a/ProjectLibrary/Entites/Reader.cs +++ b/ProjectLibrary/Entites/Reader.cs @@ -7,14 +7,14 @@ public int ReaderTicket { get; private set; } public DateTime RegistrationDateRT { get; private set; } // Изменение на DateTime - public static Reader CreateEntity(int id, string name, int readerTicket, DateTime registrationDateRT) + public static Reader CreateEntity(int id, string name, int readerTicket) { return new Reader { Id = id, Name = name ?? string.Empty, ReaderTicket = readerTicket, - RegistrationDateRT = registrationDateRT + RegistrationDateRT = DateTime.Now }; } } diff --git a/ProjectLibrary/Entites/Ticket_Extension.cs b/ProjectLibrary/Entites/Ticket_Extension.cs index 9e58ce7..ae05aaa 100644 --- a/ProjectLibrary/Entites/Ticket_Extension.cs +++ b/ProjectLibrary/Entites/Ticket_Extension.cs @@ -13,12 +13,11 @@ namespace ProjectLibrary.Entites public DateTime LastUpdateDate { get; private set; } public DateTime NextUpdateDate { get; private set; } - public static TicketExtensions CreateEntity(int readerID, int extensionID, DateTime lastUpdateDate, DateTime nextUpdateDate) + public static TicketExtensions CreateEntity(int readerID, DateTime lastUpdateDate, DateTime nextUpdateDate) { return new TicketExtensions { ReaderID = readerID, - ExtensionID = extensionID, LastUpdateDate = lastUpdateDate, NextUpdateDate = nextUpdateDate }; diff --git a/ProjectLibrary/FormLibrary.Designer.cs b/ProjectLibrary/FormLibrary.Designer.cs index fbb4b3e..3b3ebb0 100644 --- a/ProjectLibrary/FormLibrary.Designer.cs +++ b/ProjectLibrary/FormLibrary.Designer.cs @@ -30,13 +30,13 @@ { menuStrip1 = new MenuStrip(); справочникиToolStripMenuItem = new ToolStripMenuItem(); - читательскийБилетToolStripMenuItem = new ToolStripMenuItem(); книгаToolStripMenuItem = new ToolStripMenuItem(); - картаСотрудникаToolStripMenuItem = new ToolStripMenuItem(); + читателиToolStripMenuItem = new ToolStripMenuItem(); + библиотекиToolStripMenuItem = new ToolStripMenuItem(); операцииToolStripMenuItem = new ToolStripMenuItem(); - оформлениеБилетаToolStripMenuItem = new ToolStripMenuItem(); обновлениеБилетаToolStripMenuItem = new ToolStripMenuItem(); отчетыToolStripMenuItem = new ToolStripMenuItem(); + заказатьКнигиToolStripMenuItem = new ToolStripMenuItem(); menuStrip1.SuspendLayout(); SuspendLayout(); // @@ -53,47 +53,41 @@ // // справочникиToolStripMenuItem // - справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { читательскийБилетToolStripMenuItem, книгаToolStripMenuItem, картаСотрудникаToolStripMenuItem }); + справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { книгаToolStripMenuItem, читателиToolStripMenuItem, библиотекиToolStripMenuItem }); справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem"; справочникиToolStripMenuItem.Size = new Size(117, 24); справочникиToolStripMenuItem.Text = "Справочники"; // - // читательскийБилетToolStripMenuItem - // - читательскийБилетToolStripMenuItem.Name = "читательскийБилетToolStripMenuItem"; - читательскийБилетToolStripMenuItem.Size = new Size(231, 26); - читательскийБилетToolStripMenuItem.Text = "Читательский билет"; - // // книгаToolStripMenuItem // книгаToolStripMenuItem.Name = "книгаToolStripMenuItem"; - книгаToolStripMenuItem.Size = new Size(231, 26); + книгаToolStripMenuItem.Size = new Size(175, 26); книгаToolStripMenuItem.Text = "Книга"; // - // картаСотрудникаToolStripMenuItem + // читателиToolStripMenuItem // - картаСотрудникаToolStripMenuItem.Name = "картаСотрудникаToolStripMenuItem"; - картаСотрудникаToolStripMenuItem.Size = new Size(231, 26); - картаСотрудникаToolStripMenuItem.Text = "Сотрудники"; - картаСотрудникаToolStripMenuItem.Click += картаСотрудникаToolStripMenuItem_Click; + читателиToolStripMenuItem.Name = "читателиToolStripMenuItem"; + читателиToolStripMenuItem.Size = new Size(175, 26); + читателиToolStripMenuItem.Text = "Читатели"; + читателиToolStripMenuItem.Click += читателиToolStripMenuItem_Click; + // + // библиотекиToolStripMenuItem + // + библиотекиToolStripMenuItem.Name = "библиотекиToolStripMenuItem"; + библиотекиToolStripMenuItem.Size = new Size(175, 26); + библиотекиToolStripMenuItem.Text = "Библиотеки"; // // операцииToolStripMenuItem // - операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { оформлениеБилетаToolStripMenuItem, обновлениеБилетаToolStripMenuItem }); + операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { обновлениеБилетаToolStripMenuItem, заказатьКнигиToolStripMenuItem }); операцииToolStripMenuItem.Name = "операцииToolStripMenuItem"; операцииToolStripMenuItem.Size = new Size(95, 24); операцииToolStripMenuItem.Text = "Операции"; // - // оформлениеБилетаToolStripMenuItem - // - оформлениеБилетаToolStripMenuItem.Name = "оформлениеБилетаToolStripMenuItem"; - оформлениеБилетаToolStripMenuItem.Size = new Size(240, 26); - оформлениеБилетаToolStripMenuItem.Text = "Оформление билета "; - // // обновлениеБилетаToolStripMenuItem // обновлениеБилетаToolStripMenuItem.Name = "обновлениеБилетаToolStripMenuItem"; - обновлениеБилетаToolStripMenuItem.Size = new Size(240, 26); + обновлениеБилетаToolStripMenuItem.Size = new Size(232, 26); обновлениеБилетаToolStripMenuItem.Text = "Обновление билета"; // // отчетыToolStripMenuItem @@ -102,6 +96,13 @@ отчетыToolStripMenuItem.Size = new Size(73, 24); отчетыToolStripMenuItem.Text = "Отчеты"; // + // заказатьКнигиToolStripMenuItem + // + заказатьКнигиToolStripMenuItem.Name = "заказатьКнигиToolStripMenuItem"; + заказатьКнигиToolStripMenuItem.Size = new Size(232, 26); + заказатьКнигиToolStripMenuItem.Text = "Заказать книги"; + заказатьКнигиToolStripMenuItem.Click += заказатьКнигиToolStripMenuItem_Click; + // // FormLibrary // AutoScaleDimensions = new SizeF(8F, 20F); @@ -124,12 +125,12 @@ private MenuStrip menuStrip1; private ToolStripMenuItem справочникиToolStripMenuItem; - private ToolStripMenuItem читательскийБилетToolStripMenuItem; private ToolStripMenuItem книгаToolStripMenuItem; - private ToolStripMenuItem картаСотрудникаToolStripMenuItem; private ToolStripMenuItem операцииToolStripMenuItem; - private ToolStripMenuItem оформлениеБилетаToolStripMenuItem; private ToolStripMenuItem обновлениеБилетаToolStripMenuItem; private ToolStripMenuItem отчетыToolStripMenuItem; + private ToolStripMenuItem читателиToolStripMenuItem; + private ToolStripMenuItem библиотекиToolStripMenuItem; + private ToolStripMenuItem заказатьКнигиToolStripMenuItem; } } diff --git a/ProjectLibrary/FormLibrary.cs b/ProjectLibrary/FormLibrary.cs index 3258552..3b876b8 100644 --- a/ProjectLibrary/FormLibrary.cs +++ b/ProjectLibrary/FormLibrary.cs @@ -1,15 +1,45 @@ +using System.ComponentModel; +using Unity; + namespace ProjectLibrary { public partial class FormLibrary : Form { - public FormLibrary() + private readonly IUnityContainer _container; + + public FormLibrary(IUnityContainer container) { InitializeComponent(); + _container = container ?? throw new ArgumentNullException(nameof(container)); } private void ToolStripMenuItem_Click(object sender, EventArgs e) { } + + private void ToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } } } diff --git a/ProjectLibrary/Forms/FBook_Orders.Designer.cs b/ProjectLibrary/Forms/FBook_Orders.Designer.cs deleted file mode 100644 index 4df4107..0000000 --- a/ProjectLibrary/Forms/FBook_Orders.Designer.cs +++ /dev/null @@ -1,101 +0,0 @@ -namespace ProjectLibrary.Forms -{ - partial class FBook_Orders - { - private System.ComponentModel.IContainer components = null; - - private Label lblBookID; - private TextBox txtBookID; - private Label lblOrderID; - private TextBox txtOrderID; - private Button btnSave; - - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - private void InitializeComponent() - { - lblBookID = new Label(); - txtBookID = new TextBox(); - lblOrderID = new Label(); - txtOrderID = new TextBox(); - btnSave = new Button(); - buttonCancel_Click = new Button(); - SuspendLayout(); - // - // lblBookID - // - lblBookID.AutoSize = true; - lblBookID.Location = new Point(20, 20); - lblBookID.Name = "lblBookID"; - lblBookID.Size = new Size(71, 20); - lblBookID.TabIndex = 0; - lblBookID.Text = "ID книги:"; - // - // txtBookID - // - txtBookID.Location = new Point(100, 20); - txtBookID.Name = "txtBookID"; - txtBookID.ReadOnly = true; - txtBookID.Size = new Size(200, 27); - txtBookID.TabIndex = 1; - // - // lblOrderID - // - lblOrderID.AutoSize = true; - lblOrderID.Location = new Point(20, 60); - lblOrderID.Name = "lblOrderID"; - lblOrderID.Size = new Size(76, 20); - lblOrderID.TabIndex = 2; - lblOrderID.Text = "ID заказа:"; - // - // txtOrderID - // - txtOrderID.Location = new Point(100, 60); - txtOrderID.Name = "txtOrderID"; - txtOrderID.ReadOnly = true; - txtOrderID.Size = new Size(200, 27); - txtOrderID.TabIndex = 3; - // - // btnSave - // - btnSave.Location = new Point(20, 93); - btnSave.Name = "btnSave"; - btnSave.Size = new Size(100, 30); - btnSave.TabIndex = 4; - btnSave.Text = "Сохранить"; - btnSave.Click += btnSave_Click; - // - // buttonCancel_Click - // - buttonCancel_Click.Location = new Point(200, 93); - buttonCancel_Click.Name = "buttonCancel_Click"; - buttonCancel_Click.Size = new Size(100, 30); - buttonCancel_Click.TabIndex = 10; - buttonCancel_Click.Text = "Отмена"; - buttonCancel_Click.Click += buttonCancel_Click_Click; - // - // FBook_Orders - // - ClientSize = new Size(400, 200); - Controls.Add(buttonCancel_Click); - Controls.Add(lblBookID); - Controls.Add(txtBookID); - Controls.Add(lblOrderID); - Controls.Add(txtOrderID); - Controls.Add(btnSave); - Name = "FBook_Orders"; - Text = "Книга и заказ"; - ResumeLayout(false); - PerformLayout(); - } - - private Button buttonCancel_Click; - } -} diff --git a/ProjectLibrary/Forms/FBook_Orders.cs b/ProjectLibrary/Forms/FBook_Orders.cs deleted file mode 100644 index 1cd7e76..0000000 --- a/ProjectLibrary/Forms/FBook_Orders.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Windows.Forms; -using ProjectLibrary.Entites; - -namespace ProjectLibrary.Forms -{ - public partial class FBook_Orders : Form - { - private Book_Orders _bookOrders; - - public FBook_Orders(Book_Orders bookOrders) - { - InitializeComponent(); - _bookOrders = bookOrders; - LoadOrderData(); - } - - private void LoadOrderData() - { - txtBookID.Text = _bookOrders.BookID.ToString(); - txtOrderID.Text = _bookOrders.OrderID.ToString(); - } - - private void btnSave_Click(object sender, EventArgs e) - { - // Создание новой сущности с обновленными данными - var updatedBookOrders = Book_Orders.CreateEntity( - int.Parse(txtBookID.Text), - int.Parse(txtOrderID.Text) - ); - - // Обновление внутренней переменной - _bookOrders = updatedBookOrders; - - MessageBox.Show("Данные успешно сохранены!"); - } - - private void buttonCancel_Click_Click(object sender, EventArgs e) - { - // Закрытие формы без сохранения - this.Close(); - } - } -} diff --git a/ProjectLibrary/Forms/FLibrary.cs b/ProjectLibrary/Forms/FLibrary.cs index 78249a3..af739ec 100644 --- a/ProjectLibrary/Forms/FLibrary.cs +++ b/ProjectLibrary/Forms/FLibrary.cs @@ -24,17 +24,7 @@ namespace ProjectLibrary.Forms private void btnSave_Click(object sender, EventArgs e) { - // Создание новой сущности с обновленными данными - var updatedLibrary = Library.CreateEntity( - int.Parse(txtId.Text), - txtName.Text, - txtAddress.Text - ); - - // Обновление внутренней переменной - _library = updatedLibrary; - - MessageBox.Show("Данные успешно сохранены!"); + } private void buttonCancel_Click_Click(object sender, EventArgs e) diff --git a/ProjectLibrary/Forms/FOrder.Designer.cs b/ProjectLibrary/Forms/FOrder.Designer.cs new file mode 100644 index 0000000..be09ca4 --- /dev/null +++ b/ProjectLibrary/Forms/FOrder.Designer.cs @@ -0,0 +1,157 @@ +namespace ProjectLibrary.Forms +{ + partial class FOrder + { + private System.ComponentModel.IContainer components = null; + private Label lblOrderDate; + private TextBox txtOrderDate; + private Label lblReturnDate; + private TextBox txtReturnDate; + private Label lblReaderID; + private Label lblBookID; + private Button btnSave; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + lblOrderDate = new Label(); + txtOrderDate = new TextBox(); + lblReturnDate = new Label(); + txtReturnDate = new TextBox(); + lblReaderID = new Label(); + lblBookID = new Label(); + btnSave = new Button(); + buttonCancel_Click = new Button(); + comboBox1 = new ComboBox(); + dataGridViewIDBook = new DataGridView(); + Book = new DataGridViewComboBoxColumn(); + ((System.ComponentModel.ISupportInitialize)dataGridViewIDBook).BeginInit(); + SuspendLayout(); + // + // lblOrderDate + // + lblOrderDate.AutoSize = true; + lblOrderDate.Location = new Point(12, 25); + lblOrderDate.Name = "lblOrderDate"; + lblOrderDate.Size = new Size(93, 20); + lblOrderDate.TabIndex = 2; + lblOrderDate.Text = "Дата заказа:"; + // + // txtOrderDate + // + txtOrderDate.Location = new Point(129, 25); + txtOrderDate.Name = "txtOrderDate"; + txtOrderDate.Size = new Size(200, 27); + txtOrderDate.TabIndex = 3; + // + // lblReturnDate + // + lblReturnDate.AutoSize = true; + lblReturnDate.Location = new Point(12, 65); + lblReturnDate.Name = "lblReturnDate"; + lblReturnDate.Size = new Size(111, 20); + lblReturnDate.TabIndex = 4; + lblReturnDate.Text = "Дата возврата:"; + // + // txtReturnDate + // + txtReturnDate.Location = new Point(129, 65); + txtReturnDate.Name = "txtReturnDate"; + txtReturnDate.Size = new Size(200, 27); + txtReturnDate.TabIndex = 5; + // + // lblReaderID + // + lblReaderID.AutoSize = true; + lblReaderID.Location = new Point(12, 105); + lblReaderID.Name = "lblReaderID"; + lblReaderID.Size = new Size(92, 20); + lblReaderID.TabIndex = 6; + lblReaderID.Text = "ID читателя:"; + // + // lblBookID + // + lblBookID.AutoSize = true; + lblBookID.Location = new Point(12, 145); + lblBookID.Name = "lblBookID"; + lblBookID.Size = new Size(71, 20); + lblBookID.TabIndex = 8; + lblBookID.Text = "ID книги:"; + // + // btnSave + // + btnSave.Location = new Point(23, 238); + btnSave.Name = "btnSave"; + btnSave.Size = new Size(100, 30); + btnSave.TabIndex = 10; + btnSave.Text = "Сохранить"; + btnSave.Click += ButtonSave_Click; + + // + // buttonCancel_Click + // + buttonCancel_Click.Location = new Point(232, 238); + buttonCancel_Click.Name = "buttonCancel_Click"; + buttonCancel_Click.Size = new Size(100, 30); + buttonCancel_Click.TabIndex = 11; + buttonCancel_Click.Text = "Отмена"; + buttonCancel_Click.Click += ButtonCancel_Click; + // + // comboBox1 + // + comboBox1.Location = new Point(129, 108); + comboBox1.Name = "comboBox1"; + comboBox1.Size = new Size(203, 28); + comboBox1.TabIndex = 0; + // + // dataGridViewIDBook + // + dataGridViewIDBook.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewIDBook.Columns.AddRange(new DataGridViewColumn[] { Book }); + dataGridViewIDBook.Location = new Point(129, 151); + dataGridViewIDBook.Name = "dataGridViewIDBook"; + dataGridViewIDBook.RowHeadersWidth = 51; + dataGridViewIDBook.Size = new Size(200, 81); + dataGridViewIDBook.TabIndex = 12; + // + // Book + // + Book.HeaderText = "Book"; + Book.MinimumWidth = 6; + Book.Name = "Book"; + Book.Width = 125; + // + // FOrders + // + ClientSize = new Size(372, 332); + Controls.Add(dataGridViewIDBook); + Controls.Add(comboBox1); + Controls.Add(buttonCancel_Click); + Controls.Add(lblOrderDate); + Controls.Add(txtOrderDate); + Controls.Add(lblReturnDate); + Controls.Add(txtReturnDate); + Controls.Add(lblReaderID); + Controls.Add(lblBookID); + Controls.Add(btnSave); + Name = "FOrders"; + Text = "Заказы"; + ((System.ComponentModel.ISupportInitialize)dataGridViewIDBook).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + private Button buttonCancel_Click; + private ComboBox comboBox1; + private DataGridView dataGridViewIDBook; + private DataGridViewComboBoxColumn Book; + } +} diff --git a/ProjectLibrary/Forms/FOrder.cs b/ProjectLibrary/Forms/FOrder.cs new file mode 100644 index 0000000..65ae9d1 --- /dev/null +++ b/ProjectLibrary/Forms/FOrder.cs @@ -0,0 +1,122 @@ +using ProjectLibrary.Repositories; +using Unity; +using ProjectLibrary.Entites; + +namespace ProjectLibrary.Forms +{ + public partial class FOrder : Form + { + private readonly IUnityContainer _container; + private readonly IOrderRepository _orderRepository; + + + private int? _orderId; + + public FOrder(IUnityContainer container, IOrderRepository orderRepository, IBookOrderRepository bookOrderRepository) + { + InitializeComponent(); + _container = container ?? throw new ArgumentNullException(nameof(container)); + _orderRepository = orderRepository ?? throw new ArgumentNullException(nameof(orderRepository)); + + } + + private void FOrder_Load(object sender, EventArgs e) + { + try + { + if (_orderId.HasValue) + { + LoadOrderData(_orderId.Value); + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке данных", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + public int OrderID + { + set + { + _orderId = value; + } + } + + private void LoadOrderData(int orderId) + { + var order = _orderRepository.ReadOrderById(orderId); + //var bookOrders = _bookOrderRepository.GetBookOrderByOrderId(orderId); + + if (order == null) + { + throw new InvalidOperationException("Данные заказа не найдены."); + } + + txtOrderDate.Text = order.OrderDate.ToString("yyyy-MM-dd"); + txtReturnDate.Text = order.ReturnDate.ToString("yyyy-MM-dd"); + comboBox1.SelectedItem = order.ReaderID.ToString(); + + dataGridViewIDBook.Rows.Clear(); + //foreach (var bookOrder in bookOrders) + //{ + // dataGridViewIDBook.Rows.Add(bookOrder.BookID); + //} + } + + private List CreateListMaterialFromDataGrid() + { + var list = new List(); + foreach (DataGridViewRow row in dataGridViewIDBook.Rows) + { + if (row.Cells["ColumnMaterials"].Value == null || row.Cells["ColumnCount"].Value == null) + { + continue; + } + list.Add(Book_Orders.CreateEntity(0, Convert.ToInt32(row.Cells["ColumnMaterials"].Value))); + } + return list; + } + private void ButtonSave_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrWhiteSpace(txtOrderDate.Text) || string.IsNullOrWhiteSpace(txtReturnDate.Text)) + { + throw new Exception("Не все поля заполнены."); + } + + + var updatedOrder = Orders.CreateEntity( + _orderId ?? 0, + DateTime.Parse(txtOrderDate.Text), + DateTime.Parse(txtReturnDate.Text), + int.Parse(comboBox1.SelectedItem.ToString()), + CreateListMaterialFromDataGrid() + + ); + + if (_orderId.HasValue) + { + _orderRepository.UpdateOrder(updatedOrder); + } + else + { + _orderRepository.CreateOrder(updatedOrder); + } + + MessageBox.Show("Данные успешно сохранены.", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonCancel_Click(object sender, EventArgs e) + { + Close(); + } + } +} diff --git a/ProjectLibrary/Forms/FBook_Orders.resx b/ProjectLibrary/Forms/FOrder.resx similarity index 96% rename from ProjectLibrary/Forms/FBook_Orders.resx rename to ProjectLibrary/Forms/FOrder.resx index 8b2ff64..9770c5a 100644 --- a/ProjectLibrary/Forms/FBook_Orders.resx +++ b/ProjectLibrary/Forms/FOrder.resx @@ -117,4 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + \ No newline at end of file diff --git a/ProjectLibrary/Forms/FOrders.Designer.cs b/ProjectLibrary/Forms/FOrders.Designer.cs index fd85e3a..ee0095c 100644 --- a/ProjectLibrary/Forms/FOrders.Designer.cs +++ b/ProjectLibrary/Forms/FOrders.Designer.cs @@ -2,20 +2,15 @@ { partial class FOrders { + /// + /// Required designer variable. + /// private System.ComponentModel.IContainer components = null; - private Label lblOrderID; - private TextBox txtOrderID; - private Label lblOrderDate; - private TextBox txtOrderDate; - private Label lblReturnDate; - private TextBox txtReturnDate; - private Label lblReaderID; - private TextBox txtReaderID; - private Label lblBookID; - private TextBox txtBookID; - private Button btnSave; - + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) @@ -25,143 +20,81 @@ base.Dispose(disposing); } + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// private void InitializeComponent() { - lblOrderID = new Label(); - txtOrderID = new TextBox(); - lblOrderDate = new Label(); - txtOrderDate = new TextBox(); - lblReturnDate = new Label(); - txtReturnDate = new TextBox(); - lblReaderID = new Label(); - txtReaderID = new TextBox(); - lblBookID = new Label(); - txtBookID = new TextBox(); - btnSave = new Button(); - buttonCancel_Click = new Button(); + dataGridViewOrders = new DataGridView(); + buttonAdd = new Button(); + buttonUpdate = new Button(); + buttonRemove = new Button(); + ((System.ComponentModel.ISupportInitialize)dataGridViewOrders).BeginInit(); SuspendLayout(); // - // lblOrderID + // dataGridViewOrders // - lblOrderID.AutoSize = true; - lblOrderID.Location = new Point(20, 20); - lblOrderID.Name = "lblOrderID"; - lblOrderID.Size = new Size(76, 20); - lblOrderID.TabIndex = 0; - lblOrderID.Text = "ID заказа:"; + dataGridViewOrders.AllowUserToAddRows = false; + dataGridViewOrders.AllowUserToDeleteRows = false; + dataGridViewOrders.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewOrders.Location = new Point(12, 12); + dataGridViewOrders.Name = "dataGridViewOrders"; + dataGridViewOrders.ReadOnly = true; + dataGridViewOrders.RowHeadersWidth = 51; + dataGridViewOrders.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewOrders.Size = new Size(600, 300); + dataGridViewOrders.TabIndex = 4; // - // txtOrderID + // buttonAdd // - txtOrderID.Location = new Point(137, 20); - txtOrderID.Name = "txtOrderID"; - txtOrderID.ReadOnly = true; - txtOrderID.Size = new Size(200, 27); - txtOrderID.TabIndex = 1; + buttonAdd.Location = new Point(12, 332); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(100, 30); + buttonAdd.TabIndex = 5; + buttonAdd.Text = "Добавить"; + buttonAdd.Click += buttonAdd_Click; // - // lblOrderDate + // buttonUpdate // - lblOrderDate.AutoSize = true; - lblOrderDate.Location = new Point(20, 60); - lblOrderDate.Name = "lblOrderDate"; - lblOrderDate.Size = new Size(93, 20); - lblOrderDate.TabIndex = 2; - lblOrderDate.Text = "Дата заказа:"; + buttonUpdate.Location = new Point(132, 332); + buttonUpdate.Name = "buttonUpdate"; + buttonUpdate.Size = new Size(100, 30); + buttonUpdate.TabIndex = 6; + buttonUpdate.Text = "Изменить"; + buttonUpdate.Click += buttonUpdate_Click; // - // txtOrderDate + // buttonRemove // - txtOrderDate.Location = new Point(137, 60); - txtOrderDate.Name = "txtOrderDate"; - txtOrderDate.Size = new Size(200, 27); - txtOrderDate.TabIndex = 3; - // - // lblReturnDate - // - lblReturnDate.AutoSize = true; - lblReturnDate.Location = new Point(20, 100); - lblReturnDate.Name = "lblReturnDate"; - lblReturnDate.Size = new Size(111, 20); - lblReturnDate.TabIndex = 4; - lblReturnDate.Text = "Дата возврата:"; - // - // txtReturnDate - // - txtReturnDate.Location = new Point(137, 100); - txtReturnDate.Name = "txtReturnDate"; - txtReturnDate.Size = new Size(200, 27); - txtReturnDate.TabIndex = 5; - // - // lblReaderID - // - lblReaderID.AutoSize = true; - lblReaderID.Location = new Point(20, 140); - lblReaderID.Name = "lblReaderID"; - lblReaderID.Size = new Size(92, 20); - lblReaderID.TabIndex = 6; - lblReaderID.Text = "ID читателя:"; - // - // txtReaderID - // - txtReaderID.Location = new Point(137, 140); - txtReaderID.Name = "txtReaderID"; - txtReaderID.Size = new Size(200, 27); - txtReaderID.TabIndex = 7; - // - // lblBookID - // - lblBookID.AutoSize = true; - lblBookID.Location = new Point(20, 180); - lblBookID.Name = "lblBookID"; - lblBookID.Size = new Size(71, 20); - lblBookID.TabIndex = 8; - lblBookID.Text = "ID книги:"; - // - // txtBookID - // - txtBookID.Location = new Point(137, 177); - txtBookID.Name = "txtBookID"; - txtBookID.ReadOnly = true; - txtBookID.Size = new Size(200, 27); - txtBookID.TabIndex = 9; - // - // btnSave - // - btnSave.Location = new Point(20, 222); - btnSave.Name = "btnSave"; - btnSave.Size = new Size(100, 30); - btnSave.TabIndex = 10; - btnSave.Text = "Сохранить"; - btnSave.Click += btnSave_Click; - // - // buttonCancel_Click - // - buttonCancel_Click.Location = new Point(237, 222); - buttonCancel_Click.Name = "buttonCancel_Click"; - buttonCancel_Click.Size = new Size(100, 30); - buttonCancel_Click.TabIndex = 11; - buttonCancel_Click.Text = "Отмена"; - buttonCancel_Click.Click += buttonCancel_Click_Click; + buttonRemove.Location = new Point(252, 332); + buttonRemove.Name = "buttonRemove"; + buttonRemove.Size = new Size(100, 30); + buttonRemove.TabIndex = 7; + buttonRemove.Text = "Удалить"; + buttonRemove.Click += buttonRemove_Click; // // FOrders // - ClientSize = new Size(400, 300); - Controls.Add(buttonCancel_Click); - Controls.Add(lblOrderID); - Controls.Add(txtOrderID); - Controls.Add(lblOrderDate); - Controls.Add(txtOrderDate); - Controls.Add(lblReturnDate); - Controls.Add(txtReturnDate); - Controls.Add(lblReaderID); - Controls.Add(txtReaderID); - Controls.Add(lblBookID); - Controls.Add(txtBookID); - Controls.Add(btnSave); + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(630, 412); + Controls.Add(dataGridViewOrders); + Controls.Add(buttonAdd); + Controls.Add(buttonUpdate); + Controls.Add(buttonRemove); Name = "FOrders"; - Text = "Заказы"; + Text = "FOrders"; + ((System.ComponentModel.ISupportInitialize)dataGridViewOrders).EndInit(); ResumeLayout(false); - PerformLayout(); } - private Button buttonCancel_Click; + #endregion + + private DataGridView dataGridViewOrders; + private Button buttonAdd; + private Button buttonUpdate; + private Button buttonRemove; } -} +} \ No newline at end of file diff --git a/ProjectLibrary/Forms/FOrders.cs b/ProjectLibrary/Forms/FOrders.cs index 042cdd2..f6f51e8 100644 --- a/ProjectLibrary/Forms/FOrders.cs +++ b/ProjectLibrary/Forms/FOrders.cs @@ -1,57 +1,95 @@ -using System; +using ProjectLibrary.Entites; +using ProjectLibrary.Repositories; using System.Windows.Forms; -using ProjectLibrary.Entites; +using Unity; namespace ProjectLibrary.Forms { public partial class FOrders : Form { - private Orders _order; - private Book_Orders _bookOrder; + private readonly IUnityContainer _container; + private readonly IOrderRepository _orderRepository; - public FOrders(Orders order, Book_Orders bookOrder) + public FOrders(IUnityContainer container, IOrderRepository orderRepository) { InitializeComponent(); - _order = order; - _bookOrder = bookOrder; - LoadOrderData(); + _container = container ?? throw new ArgumentNullException(nameof(container)); + _orderRepository = orderRepository ?? throw new ArgumentNullException(nameof(orderRepository)); } - private void LoadOrderData() + private void LoadList() { - txtOrderID.Text = _order.Id.ToString(); - txtOrderDate.Text = _order.OrderDate.ToString(); - txtReturnDate.Text = _order.ReturnDate.ToString(); - txtReaderID.Text = _order.ReaderID.ToString(); - txtBookID.Text = _bookOrder.BookID.ToString(); + dataGridViewOrders.DataSource = _orderRepository.ReadOrders(); } - private void btnSave_Click(object sender, EventArgs e) + private void buttonAdd_Click(object sender, EventArgs e) { - // Создание обновленных данных - var updatedOrder = Orders.CreateEntity( - int.Parse(txtOrderID.Text), - int.Parse(txtOrderDate.Text), - int.Parse(txtReturnDate.Text), - int.Parse(txtReaderID.Text) - ); - var updatedBookOrder = Book_Orders.CreateEntity( - int.Parse(txtBookID.Text), - int.Parse(txtOrderID.Text) - ); - - // Обновление объектов - _order = updatedOrder; - _bookOrder = updatedBookOrder; - - MessageBox.Show("Данные успешно сохранены!"); + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } - private void buttonCancel_Click_Click(object sender, EventArgs e) + private bool TryGetIdentifierFromSelectedRow(out int id) { - // Закрытие формы без сохранения - this.Close(); + id = 0; + if (dataGridViewOrders.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + + id = Convert.ToInt32(dataGridViewOrders.SelectedRows[0].Cells["Id"].Value); + return true; + } + + private void buttonUpdate_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + + try + { + var form = _container.Resolve(); + form.ID = findId; + form.ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при изменении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void buttonRemove_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + + if (MessageBox.Show("Удалить запись?", "Удаление", MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; + } + + try + { + _orderRepository.DeleteOrder(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } } } diff --git a/ProjectLibrary/Forms/FReader.Designer.cs b/ProjectLibrary/Forms/FReader.Designer.cs index 2d12eb0..35470c4 100644 --- a/ProjectLibrary/Forms/FReader.Designer.cs +++ b/ProjectLibrary/Forms/FReader.Designer.cs @@ -3,15 +3,10 @@ partial class FReader { private System.ComponentModel.IContainer components = null; - - private Label lblId; - private TextBox txtId; private Label lblName; private TextBox txtName; private Label lblReaderTicket; private TextBox txtReaderTicket; - private Label lblRegistrationDate; - private TextBox txtRegistrationDate; private Button btnSave; protected override void Dispose(bool disposing) @@ -25,39 +20,18 @@ private void InitializeComponent() { - lblId = new Label(); - txtId = new TextBox(); lblName = new Label(); txtName = new TextBox(); lblReaderTicket = new Label(); txtReaderTicket = new TextBox(); - lblRegistrationDate = new Label(); - txtRegistrationDate = new TextBox(); btnSave = new Button(); buttonCancel_Click = new Button(); SuspendLayout(); // - // lblId - // - lblId.AutoSize = true; - lblId.Location = new Point(20, 20); - lblId.Name = "lblId"; - lblId.Size = new Size(27, 20); - lblId.TabIndex = 0; - lblId.Text = "ID:"; - // - // txtId - // - txtId.Location = new Point(177, 20); - txtId.Name = "txtId"; - txtId.ReadOnly = true; - txtId.Size = new Size(200, 27); - txtId.TabIndex = 1; - // // lblName // lblName.AutoSize = true; - lblName.Location = new Point(20, 60); + lblName.Location = new Point(22, 22); lblName.Name = "lblName"; lblName.Size = new Size(42, 20); lblName.TabIndex = 2; @@ -65,15 +39,15 @@ // // txtName // - txtName.Location = new Point(177, 60); + txtName.Location = new Point(179, 22); txtName.Name = "txtName"; - txtName.Size = new Size(200, 27); + txtName.Size = new Size(238, 27); txtName.TabIndex = 3; // // lblReaderTicket // lblReaderTicket.AutoSize = true; - lblReaderTicket.Location = new Point(20, 100); + lblReaderTicket.Location = new Point(22, 62); lblReaderTicket.Name = "lblReaderTicket"; lblReaderTicket.Size = new Size(151, 20); lblReaderTicket.TabIndex = 4; @@ -81,57 +55,37 @@ // // txtReaderTicket // - txtReaderTicket.Location = new Point(177, 100); + txtReaderTicket.Location = new Point(179, 62); txtReaderTicket.Name = "txtReaderTicket"; - txtReaderTicket.Size = new Size(200, 27); + txtReaderTicket.Size = new Size(238, 27); txtReaderTicket.TabIndex = 5; // - // lblRegistrationDate - // - lblRegistrationDate.AutoSize = true; - lblRegistrationDate.Location = new Point(20, 140); - lblRegistrationDate.Name = "lblRegistrationDate"; - lblRegistrationDate.Size = new Size(137, 20); - lblRegistrationDate.TabIndex = 6; - lblRegistrationDate.Text = "Дата регистрации:"; - // - // txtRegistrationDate - // - txtRegistrationDate.Location = new Point(177, 140); - txtRegistrationDate.Name = "txtRegistrationDate"; - txtRegistrationDate.Size = new Size(200, 27); - txtRegistrationDate.TabIndex = 7; - // // btnSave // - btnSave.Location = new Point(20, 181); + btnSave.Location = new Point(22, 111); btnSave.Name = "btnSave"; btnSave.Size = new Size(100, 30); btnSave.TabIndex = 8; btnSave.Text = "Сохранить"; - btnSave.Click += btnSave_Click; + btnSave.Click += SaveBtn_Click; // // buttonCancel_Click // - buttonCancel_Click.Location = new Point(277, 181); + buttonCancel_Click.Location = new Point(317, 111); buttonCancel_Click.Name = "buttonCancel_Click"; buttonCancel_Click.Size = new Size(100, 30); buttonCancel_Click.TabIndex = 10; buttonCancel_Click.Text = "Отмена"; - buttonCancel_Click.Click += buttonCancel_Click_Click; + buttonCancel_Click.Click += DiscardBtn_Click; // // FReader // - ClientSize = new Size(400, 250); + ClientSize = new Size(438, 180); Controls.Add(buttonCancel_Click); - Controls.Add(lblId); - Controls.Add(txtId); Controls.Add(lblName); Controls.Add(txtName); Controls.Add(lblReaderTicket); Controls.Add(txtReaderTicket); - Controls.Add(lblRegistrationDate); - Controls.Add(txtRegistrationDate); Controls.Add(btnSave); Name = "FReader"; Text = "Читатель"; diff --git a/ProjectLibrary/Forms/FReader.cs b/ProjectLibrary/Forms/FReader.cs index 0537ca8..e93ba7a 100644 --- a/ProjectLibrary/Forms/FReader.cs +++ b/ProjectLibrary/Forms/FReader.cs @@ -1,49 +1,89 @@ using System; using System.Windows.Forms; -using System.Xml.Linq; using ProjectLibrary.Entities; +using ProjectLibrary.Repositories; namespace ProjectLibrary.Forms { public partial class FReader : Form { - private Reader _reader; + private readonly IReaderRepository _readerRepository; // Интерфейс для работы с репозиторием + private int? _readerId; - public FReader(Reader reader) + public int ID + { + set + { + try + { + var reader = _readerRepository.GetReaderById(value); + + if (reader == null) + { + throw new InvalidOperationException($"Reader with ID {value} not found."); + } + + txtName.Text = reader.Name; + txtReaderTicket.Text = reader.ReaderTicket.ToString(); + + + _readerId = value; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "[ Error : wrong data ]", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + } + + public FReader(IReaderRepository readerRepository) { InitializeComponent(); - _reader = reader; - LoadReaderData(); + _readerRepository = readerRepository ?? throw new ArgumentNullException(nameof(readerRepository)); } - private void LoadReaderData() + private void SaveBtn_Click(object sender, EventArgs e) { - txtId.Text = _reader.Id.ToString(); - txtName.Text = _reader.Name; - txtReaderTicket.Text = _reader.ReaderTicket.ToString(); - txtRegistrationDate.Text = _reader.RegistrationDateRT.ToShortDateString(); + try + { + if (string.IsNullOrWhiteSpace(txtName.Text) || string.IsNullOrWhiteSpace(txtReaderTicket.Text)) + { + throw new Exception("[ Error : blank spaces were left, not enough information ]"); + } + + var reader = CreateReader(); + + if (_readerId.HasValue) + { + _readerRepository.UpdateReader(reader); + } + else + { + _readerRepository.AddReader(reader); + } + + MessageBox.Show("Данные успешно сохранены!", "[ Success ]", MessageBoxButtons.OK, MessageBoxIcon.Information); + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "[ Error : while saving ]", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } - private void btnSave_Click(object sender, EventArgs e) + private void DiscardBtn_Click(object sender, EventArgs e) { - // Создание новой сущности с обновленными данными - var updatedReader = Reader.CreateEntity( - int.Parse(txtId.Text), + Close(); + } + + private Reader CreateReader() + { + return Reader.CreateEntity( + _readerId ?? 0, txtName.Text, - int.Parse(txtReaderTicket.Text), - DateTime.Parse(txtRegistrationDate.Text) + int.Parse(txtReaderTicket.Text) ); - - // Обновление внутренней переменной - _reader = updatedReader; - - MessageBox.Show("Данные успешно сохранены!"); - } - - private void buttonCancel_Click_Click(object sender, EventArgs e) - { - // Закрытие формы без сохранения - this.Close(); } } } diff --git a/ProjectLibrary/Forms/FReaders.Designer.cs b/ProjectLibrary/Forms/FReaders.Designer.cs new file mode 100644 index 0000000..1b6d877 --- /dev/null +++ b/ProjectLibrary/Forms/FReaders.Designer.cs @@ -0,0 +1,72 @@ +namespace ProjectLibrary.Forms +{ + partial class FReaders + { + private System.ComponentModel.IContainer components = null; + private DataGridView dataGridViewReaders; + private Button buttonAdd; + private Button buttonUpdate; + private Button buttonRemove; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.dataGridViewReaders = new DataGridView(); + this.buttonAdd = new Button(); + this.buttonUpdate = new Button(); + this.buttonRemove = new Button(); + + this.SuspendLayout(); + + // dataGridViewReaders + this.dataGridViewReaders.AllowUserToAddRows = false; + this.dataGridViewReaders.AllowUserToDeleteRows = false; + this.dataGridViewReaders.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridViewReaders.Location = new System.Drawing.Point(20, 20); + this.dataGridViewReaders.Name = "dataGridViewReaders"; + this.dataGridViewReaders.ReadOnly = true; + this.dataGridViewReaders.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.dataGridViewReaders.Size = new System.Drawing.Size(600, 300); + this.Controls.Add(this.dataGridViewReaders); + + // buttonAdd + this.buttonAdd.Location = new System.Drawing.Point(20, 340); + this.buttonAdd.Name = "buttonAdd"; + this.buttonAdd.Size = new System.Drawing.Size(100, 30); + this.buttonAdd.Text = "Добавить"; + this.buttonAdd.Click += new EventHandler(this.ButtonAdd_Click); + this.Controls.Add(this.buttonAdd); + + // buttonUpdate + this.buttonUpdate.Location = new System.Drawing.Point(140, 340); + this.buttonUpdate.Name = "buttonUpdate"; + this.buttonUpdate.Size = new System.Drawing.Size(100, 30); + this.buttonUpdate.Text = "Изменить"; + this.buttonUpdate.Click += new EventHandler(this.ButtonUpdate_Click); + this.Controls.Add(this.buttonUpdate); + + // buttonRemove + this.buttonRemove.Location = new System.Drawing.Point(260, 340); + this.buttonRemove.Name = "buttonRemove"; + this.buttonRemove.Size = new System.Drawing.Size(100, 30); + this.buttonRemove.Text = "Удалить"; + this.buttonRemove.Click += new EventHandler(this.ButtonRemove_Click); + this.Controls.Add(this.buttonRemove); + + // FReaders + this.ClientSize = new System.Drawing.Size(650, 400); + this.Name = "FReaders"; + this.Text = "Список читателей"; + this.Load += new EventHandler(this.FReaders_Load); + this.ResumeLayout(false); + } + } +} diff --git a/ProjectLibrary/Forms/FReaders.cs b/ProjectLibrary/Forms/FReaders.cs new file mode 100644 index 0000000..4d8b770 --- /dev/null +++ b/ProjectLibrary/Forms/FReaders.cs @@ -0,0 +1,104 @@ +using ProjectLibrary.Repositories; +using Unity; +using System; +using System.Windows.Forms; + +namespace ProjectLibrary.Forms +{ + public partial class FReaders : Form + { + private readonly IUnityContainer _container; + private readonly IReaderRepository _readerRepository; + + public FReaders(IUnityContainer container, IReaderRepository readerRepository) + { + InitializeComponent(); + _container = container ?? throw new ArgumentNullException(nameof(container)); + _readerRepository = readerRepository ?? throw new ArgumentNullException(nameof(readerRepository)); + } + private void LoadList() + { + dataGridViewReaders.DataSource = _readerRepository.ReadReaders(); + } + private void FReaders_Load(object sender, EventArgs e) + { + try + { + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonAdd_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonRemove_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + + if (MessageBox.Show("Удалить запись?", "Удаление", MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; + } + + try + { + _readerRepository.DeleteReader(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonUpdate_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + + try + { + var form = _container.Resolve(); + form.ID = findId; + form.ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при изменении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private bool TryGetIdentifierFromSelectedRow(out int id) + { + id = 0; + if (dataGridViewReaders.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + + id = Convert.ToInt32(dataGridViewReaders.SelectedRows[0].Cells["Id"].Value); + return true; + } + } +} diff --git a/ProjectLibrary/Forms/FReaders.resx b/ProjectLibrary/Forms/FReaders.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/ProjectLibrary/Forms/FReaders.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ProjectLibrary/Forms/FTicket_Extension.Designer.cs b/ProjectLibrary/Forms/FTicket_Extension.Designer.cs index b2e5c0c..8357cea 100644 --- a/ProjectLibrary/Forms/FTicket_Extension.Designer.cs +++ b/ProjectLibrary/Forms/FTicket_Extension.Designer.cs @@ -6,13 +6,12 @@ private Label lblReaderID; private TextBox txtReaderID; - private Label lblExtensionID; - private TextBox txtExtensionID; private Label lblLastUpdateDate; - private TextBox txtLastUpdateDate; + private DateTimePicker dtpLastUpdateDate; private Label lblNextUpdateDate; - private TextBox txtNextUpdateDate; + private DateTimePicker dtpNextUpdateDate; private Button btnSave; + private Button btnCancel; protected override void Dispose(bool disposing) { @@ -27,14 +26,12 @@ { lblReaderID = new Label(); txtReaderID = new TextBox(); - lblExtensionID = new Label(); - txtExtensionID = new TextBox(); lblLastUpdateDate = new Label(); - txtLastUpdateDate = new TextBox(); + dtpLastUpdateDate = new DateTimePicker(); lblNextUpdateDate = new Label(); - txtNextUpdateDate = new TextBox(); + dtpNextUpdateDate = new DateTimePicker(); btnSave = new Button(); - buttonCancel_Click = new Button(); + btnCancel = new Button(); SuspendLayout(); // // lblReaderID @@ -48,98 +45,77 @@ // // txtReaderID // - txtReaderID.Location = new Point(255, 13); + txtReaderID.Location = new Point(140, 20); txtReaderID.Name = "txtReaderID"; txtReaderID.ReadOnly = true; txtReaderID.Size = new Size(200, 27); txtReaderID.TabIndex = 1; // - // lblExtensionID - // - lblExtensionID.AutoSize = true; - lblExtensionID.Location = new Point(20, 60); - lblExtensionID.Name = "lblExtensionID"; - lblExtensionID.Size = new Size(110, 20); - lblExtensionID.TabIndex = 2; - lblExtensionID.Text = "ID Продления:"; - // - // txtExtensionID - // - txtExtensionID.Location = new Point(255, 57); - txtExtensionID.Name = "txtExtensionID"; - txtExtensionID.ReadOnly = true; - txtExtensionID.Size = new Size(200, 27); - txtExtensionID.TabIndex = 3; - // // lblLastUpdateDate // lblLastUpdateDate.AutoSize = true; - lblLastUpdateDate.Location = new Point(20, 100); + lblLastUpdateDate.Location = new Point(20, 64); lblLastUpdateDate.Name = "lblLastUpdateDate"; lblLastUpdateDate.Size = new Size(219, 20); lblLastUpdateDate.TabIndex = 4; lblLastUpdateDate.Text = "Дата последнего обновления:"; // - // txtLastUpdateDate + // dtpLastUpdateDate // - txtLastUpdateDate.Location = new Point(255, 100); - txtLastUpdateDate.Name = "txtLastUpdateDate"; - txtLastUpdateDate.Size = new Size(200, 27); - txtLastUpdateDate.TabIndex = 5; + dtpLastUpdateDate.Location = new Point(276, 59); + dtpLastUpdateDate.Name = "dtpLastUpdateDate"; + dtpLastUpdateDate.Size = new Size(200, 27); + dtpLastUpdateDate.TabIndex = 5; // // lblNextUpdateDate // lblNextUpdateDate.AutoSize = true; - lblNextUpdateDate.Location = new Point(20, 140); + lblNextUpdateDate.Location = new Point(20, 104); lblNextUpdateDate.Name = "lblNextUpdateDate"; lblNextUpdateDate.Size = new Size(223, 20); lblNextUpdateDate.TabIndex = 6; lblNextUpdateDate.Text = "Дата следующего обновления:"; // - // txtNextUpdateDate + // dtpNextUpdateDate // - txtNextUpdateDate.Location = new Point(255, 140); - txtNextUpdateDate.Name = "txtNextUpdateDate"; - txtNextUpdateDate.Size = new Size(200, 27); - txtNextUpdateDate.TabIndex = 7; + dtpNextUpdateDate.Location = new Point(276, 99); + dtpNextUpdateDate.Name = "dtpNextUpdateDate"; + dtpNextUpdateDate.Size = new Size(200, 27); + dtpNextUpdateDate.TabIndex = 7; // // btnSave // - btnSave.Location = new Point(20, 178); + btnSave.Location = new Point(140, 164); btnSave.Name = "btnSave"; btnSave.Size = new Size(100, 30); btnSave.TabIndex = 8; btnSave.Text = "Сохранить"; - btnSave.Click += btnSave_Click; + btnSave.Click += SaveBtn_Click; // - // buttonCancel_Click + // btnCancel // - buttonCancel_Click.Location = new Point(355, 178); - buttonCancel_Click.Name = "buttonCancel_Click"; - buttonCancel_Click.Size = new Size(100, 30); - buttonCancel_Click.TabIndex = 9; - buttonCancel_Click.Text = "Отмена"; - buttonCancel_Click.Click += buttonCancel_Click_Click; + btnCancel.Location = new Point(250, 164); + btnCancel.Name = "btnCancel"; + btnCancel.Size = new Size(100, 30); + btnCancel.TabIndex = 9; + btnCancel.Text = "Отмена"; + btnCancel.Click += DiscardBtn_Click; // // FTicket_Extension // - ClientSize = new Size(560, 250); - Controls.Add(buttonCancel_Click); + ClientSize = new Size(797, 250); Controls.Add(lblReaderID); Controls.Add(txtReaderID); - Controls.Add(lblExtensionID); - Controls.Add(txtExtensionID); Controls.Add(lblLastUpdateDate); - Controls.Add(txtLastUpdateDate); + Controls.Add(dtpLastUpdateDate); Controls.Add(lblNextUpdateDate); - Controls.Add(txtNextUpdateDate); + Controls.Add(dtpNextUpdateDate); Controls.Add(btnSave); + Controls.Add(btnCancel); Name = "FTicket_Extension"; Text = "Продление билета"; ResumeLayout(false); PerformLayout(); } - - private Button buttonCancel_Click; } } diff --git a/ProjectLibrary/Forms/FTicket_Extension.cs b/ProjectLibrary/Forms/FTicket_Extension.cs index 50202df..014220e 100644 --- a/ProjectLibrary/Forms/FTicket_Extension.cs +++ b/ProjectLibrary/Forms/FTicket_Extension.cs @@ -2,48 +2,88 @@ using System.Windows.Forms; using ProjectLibrary.Entites; using ProjectLibrary.Entities; +using ProjectLibrary.Repositories; namespace ProjectLibrary.Forms { public partial class FTicket_Extension : Form { - private TicketExtensions _ticketExtensions; + private readonly ITicketExtensionsRepository _ticketExtensionsRepository; + private int? _extensionId; - public FTicket_Extension(TicketExtensions ticketExtensions) + public int ID + { + set + { + try + { + var ticketExtension = _ticketExtensionsRepository.GetTicketExtensionById(value); + + if (ticketExtension == null) + { + throw new InvalidOperationException($"Ticket extension with ID {value} not found."); + } + + txtReaderID.Text = ticketExtension.ReaderID.ToString(); + dtpLastUpdateDate.Value = ticketExtension.LastUpdateDate; + dtpNextUpdateDate.Value = ticketExtension.NextUpdateDate; + + _extensionId = value; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "[ Error : wrong data ]", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + public FTicket_Extension(ITicketExtensionsRepository ticketExtensionsRepository) { InitializeComponent(); - _ticketExtensions = ticketExtensions; - LoadTicketExtensionData(); + _ticketExtensionsRepository = ticketExtensionsRepository ?? throw new ArgumentNullException(nameof(ticketExtensionsRepository)); } - private void LoadTicketExtensionData() + private void SaveBtn_Click(object sender, EventArgs e) { - txtReaderID.Text = _ticketExtensions.ReaderID.ToString(); - txtExtensionID.Text = _ticketExtensions.ExtensionID.ToString(); - txtLastUpdateDate.Text = _ticketExtensions.LastUpdateDate.ToShortDateString(); - txtNextUpdateDate.Text = _ticketExtensions.NextUpdateDate.ToShortDateString(); + try + { + if (string.IsNullOrWhiteSpace(txtReaderID.Text)) + { + throw new Exception("[ Error : blank spaces were left, not enough information ]"); + } + + var ticketExtension = CreateTicketExtension(); + + if (_extensionId.HasValue) + { + _ticketExtensionsRepository.UpdateTicketExtension(ticketExtension); + } + else + { + _ticketExtensionsRepository.AddTicketExtension(ticketExtension); + } + + MessageBox.Show("Данные успешно сохранены!", "[ Success ]", MessageBoxButtons.OK, MessageBoxIcon.Information); + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "[ Error : while saving ]", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } - private void btnSave_Click(object sender, EventArgs e) + private void DiscardBtn_Click(object sender, EventArgs e) { - // Создание новой сущности с обновленными данными - var updatedTicketExtensions = TicketExtensions.CreateEntity( + Close(); + } + + private TicketExtensions CreateTicketExtension() + { + return TicketExtensions.CreateEntity( int.Parse(txtReaderID.Text), - int.Parse(txtExtensionID.Text), - DateTime.Parse(txtLastUpdateDate.Text), - DateTime.Parse(txtNextUpdateDate.Text) + dtpLastUpdateDate.Value, + dtpNextUpdateDate.Value ); - - // Обновление внутренней переменной - _ticketExtensions = updatedTicketExtensions; - - MessageBox.Show("Данные успешно сохранены!"); - } - - private void buttonCancel_Click_Click(object sender, EventArgs e) - { - // Закрытие формы без сохранения - this.Close(); } } } diff --git a/ProjectLibrary/Program.cs b/ProjectLibrary/Program.cs index bc942f4..9a38a45 100644 --- a/ProjectLibrary/Program.cs +++ b/ProjectLibrary/Program.cs @@ -28,9 +28,7 @@ namespace ProjectLibrary container.RegisterType(); container.RegisterType(); container.RegisterType(); - container.RegisterType(); - container.RegisterType(); - + container.RegisterType(); return container; } diff --git a/ProjectLibrary/Repositores/IBookLibraryRepository.cs b/ProjectLibrary/Repositores/IBookLibraryRepository.cs deleted file mode 100644 index 9e49609..0000000 --- a/ProjectLibrary/Repositores/IBookLibraryRepository.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace ProjectLibrary.Repositories -{ - using ProjectLibrary.Entites; - using ProjectLibrary.Entities; - - public interface IBookLibraryRepository - { - IEnumerable ReadBookLibraries(int? bookId = null, int? libraryId = null); - void CreateBookLibrary(Book_Library bookLibrary); - void DeleteBookLibrary(int bookId, int libraryId); - } -} diff --git a/ProjectLibrary/Repositores/IBookOrderRepository.cs b/ProjectLibrary/Repositores/IBookOrderRepository.cs index 5d8ec73..f4d5284 100644 --- a/ProjectLibrary/Repositores/IBookOrderRepository.cs +++ b/ProjectLibrary/Repositores/IBookOrderRepository.cs @@ -1,12 +1,15 @@ -namespace ProjectLibrary.Repositories -{ - using ProjectLibrary.Entites; - using ProjectLibrary.Entities; +using ProjectLibrary.Entites; +using ProjectLibrary.Entities; +using System.Collections.Generic; - public interface IBookOrdersRepository +namespace ProjectLibrary.Repositories +{ + public interface IBookOrderRepository { - IEnumerable ReadBookOrders(int? bookId = null, int? orderId = null); - void CreateBookOrder(Book_Orders bookOrder); - void DeleteBookOrder(int bookId, int orderId); + Book_Orders GetBookOrderByOrderId(int orderId); // Получить книгу по ID заказа + void AddBookOrder(Book_Orders bookOrder); // Добавить книгу к заказу + void UpdateBookOrder(Book_Orders bookOrder); // Обновить данные о книге в заказе + void DeleteBookOrder(int bookId, int orderId); // Удалить книгу из заказа + List ReadBookOrders(); // Получить все записи о книгах в заказах } } diff --git a/ProjectLibrary/Repositores/IReaderRepository.cs b/ProjectLibrary/Repositores/IReaderRepository.cs index 882131c..503ad12 100644 --- a/ProjectLibrary/Repositores/IReaderRepository.cs +++ b/ProjectLibrary/Repositores/IReaderRepository.cs @@ -1,14 +1,14 @@ namespace ProjectLibrary.Repositories { - using ProjectLibrary.Entites; using ProjectLibrary.Entities; + using System.Collections.Generic; public interface IReaderRepository { - IEnumerable ReadReaders(); - Reader ReadReaderById(int id); - void CreateReader(Reader reader); + Reader GetReaderById(int id); + void AddReader(Reader reader); void UpdateReader(Reader reader); - void DeleteReader(int id); + void DeleteReader(int id); // Метод для удаления + List ReadReaders(); // Метод для чтения всех читателей } } diff --git a/ProjectLibrary/Repositores/ITicketExtensionRepository.cs b/ProjectLibrary/Repositores/ITicketExtensionRepository.cs index c030f04..510b1db 100644 --- a/ProjectLibrary/Repositores/ITicketExtensionRepository.cs +++ b/ProjectLibrary/Repositores/ITicketExtensionRepository.cs @@ -5,10 +5,9 @@ public interface ITicketExtensionsRepository { - IEnumerable ReadTicketExtensions(); - TicketExtensions ReadTicketExtensionById(int id); - void CreateTicketExtension(TicketExtensions ticketExtension); + TicketExtensions GetTicketExtensionById(int id); + void AddTicketExtension(TicketExtensions ticketExtension); void UpdateTicketExtension(TicketExtensions ticketExtension); - void DeleteTicketExtension(int id); } + } diff --git a/ProjectLibrary/Repositores/Implementations/BookLibraryRepository.cs b/ProjectLibrary/Repositores/Implementations/BookLibraryRepository.cs deleted file mode 100644 index d389b25..0000000 --- a/ProjectLibrary/Repositores/Implementations/BookLibraryRepository.cs +++ /dev/null @@ -1,49 +0,0 @@ -using ProjectLibrary.Entites; -using ProjectLibrary.Entities; -using ProjectLibrary.Repositories; -using System.Collections.Generic; -using System.Linq; - -namespace ProjectLibrary.Repositories.Implementations -{ - public class BookLibraryRepository : IBookLibraryRepository - { - // Эмулируем базу данных в виде списка - private readonly List _bookLibraries = new List(); - - public void CreateBookLibrary(Book_Library bookLibrary) - { - // Логика для добавления связи книги и библиотеки - _bookLibraries.Add(bookLibrary); - } - - public void DeleteBookLibrary(int bookId, int libraryId) - { - // Логика для удаления связи книги и библиотеки по идентификаторам - var bookLibrary = _bookLibraries.FirstOrDefault(bl => bl.BookID == bookId && bl.LibraryID == libraryId); - if (bookLibrary != null) - { - _bookLibraries.Remove(bookLibrary); - } - } - - public IEnumerable ReadBookLibraries(int? bookId = null, int? libraryId = null) - { - // Логика для получения всех связей книг и библиотек с возможностью фильтрации по bookId и libraryId - return _bookLibraries.Where(bl => - (!bookId.HasValue || bl.BookID == bookId) && - (!libraryId.HasValue || bl.LibraryID == libraryId)); - } - - public void UpdateBookLibrary(Book_Library bookLibrary) - { - // Логика для обновления информации о связи книги и библиотеки - var existingBookLibrary = _bookLibraries.FirstOrDefault(bl => bl.BookID == bookLibrary.BookID && bl.LibraryID == bookLibrary.LibraryID); - if (existingBookLibrary != null) - { - _bookLibraries.Remove(existingBookLibrary); - _bookLibraries.Add(bookLibrary); - } - } - } -} diff --git a/ProjectLibrary/Repositores/Implementations/BookOrderRepository.cs b/ProjectLibrary/Repositores/Implementations/BookOrderRepository.cs new file mode 100644 index 0000000..0a582f9 --- /dev/null +++ b/ProjectLibrary/Repositores/Implementations/BookOrderRepository.cs @@ -0,0 +1,37 @@ +using ProjectLibrary.Entites; +using ProjectLibrary.Entities; +using System.Collections.Generic; +using System.Linq; + +namespace ProjectLibrary.Repositories +{ + public class BookOrderRepository : IBookOrderRepository + { + + + public Book_Orders GetBookOrderByOrderId(int orderId) + { + return Book_Orders.CreateEntity(orderId,0); + } + + public void AddBookOrder(Book_Orders bookOrder) + { + + } + + public void UpdateBookOrder(Book_Orders bookOrder) + { + + } + + public void DeleteBookOrder(int bookId, int orderId) + { + + } + + public List ReadBookOrders() + { + return []; + } + } +} diff --git a/ProjectLibrary/Repositores/Implementations/BookOrdersRepository.cs b/ProjectLibrary/Repositores/Implementations/BookOrdersRepository.cs deleted file mode 100644 index f5a07f5..0000000 --- a/ProjectLibrary/Repositores/Implementations/BookOrdersRepository.cs +++ /dev/null @@ -1,38 +0,0 @@ -using ProjectLibrary.Entites; -using ProjectLibrary.Entities; -using ProjectLibrary.Repositories; -using System.Collections.Generic; -using System.Linq; - -namespace ProjectLibrary.Repositories.Implementations -{ - public class BookOrdersRepository : IBookOrdersRepository - { - // Эмулируем базу данных в виде списка - private readonly List _bookOrders = new List(); - - public void CreateBookOrder(Book_Orders bookOrder) - { - // Логика для добавления связи книги и заказа - _bookOrders.Add(bookOrder); - } - - public void DeleteBookOrder(int bookId, int orderId) - { - // Логика для удаления связи книги и заказа по идентификаторам - var bookOrder = _bookOrders.FirstOrDefault(bo => bo.BookID == bookId && bo.OrderID == orderId); - if (bookOrder != null) - { - _bookOrders.Remove(bookOrder); - } - } - - public IEnumerable ReadBookOrders(int? bookId = null, int? orderId = null) - { - // Логика для получения всех связей книг и заказов с возможностью фильтрации по bookId и orderId - return _bookOrders.Where(bo => - (!bookId.HasValue || bo.BookID == bookId) && - (!orderId.HasValue || bo.OrderID == orderId)); - } - } -} diff --git a/ProjectLibrary/Repositores/Implementations/BookRepository.cs b/ProjectLibrary/Repositores/Implementations/BookRepository.cs index 44025a4..99b78fb 100644 --- a/ProjectLibrary/Repositores/Implementations/BookRepository.cs +++ b/ProjectLibrary/Repositores/Implementations/BookRepository.cs @@ -8,46 +8,31 @@ namespace ProjectLibrary.Repositories.Implementations { public class BookRepository : IBookRepository { - // Эмулируем базу данных в виде списка - private readonly List _books = new List(); - + public void CreateBook(Book book) { - // Логика для добавления книги в базу данных - _books.Add(book); + } public void DeleteBook(int id) { - // Логика для удаления книги по id - var book = _books.FirstOrDefault(b => b.Id == id); - if (book != null) - { - _books.Remove(book); - } + } public Book ReadBookById(int id) { - // Логика для получения книги по id - return _books.FirstOrDefault(b => b.Id == id) ?? Book.CreateEntity(id, "Unknown Author", "Unknown Title", BookType.None, 0); + + return Book.CreateEntity(id, "", "", BookType.None, 0); } public IEnumerable ReadBooks() { - // Логика для получения всех книг - return _books; + return []; } public void UpdateBook(Book book) { - // Логика для обновления информации о книге - var existingBook = _books.FirstOrDefault(b => b.Id == book.Id); - if (existingBook != null) - { - _books.Remove(existingBook); - _books.Add(book); - } + } } } diff --git a/ProjectLibrary/Repositores/Implementations/LibraryRepository.cs b/ProjectLibrary/Repositores/Implementations/LibraryRepository.cs index 2ffc164..fc02e54 100644 --- a/ProjectLibrary/Repositores/Implementations/LibraryRepository.cs +++ b/ProjectLibrary/Repositores/Implementations/LibraryRepository.cs @@ -1,47 +1,35 @@ using ProjectLibrary.Entites; -using ProjectLibrary.Entities; -using ProjectLibrary.Repositories; -using System.Collections.Generic; -using System.Linq; + namespace ProjectLibrary.Repositories.Implementations { public class LibraryRepository : ILibraryRepository { - private readonly List _libraries = new List(); + public void CreateLibrary(Library library) { - _libraries.Add(library); + } public void DeleteLibrary(int id) { - var library = _libraries.FirstOrDefault(l => l.Id == id); - if (library != null) - { - _libraries.Remove(library); - } + } public Library ReadLibraryById(int id) { - return _libraries.FirstOrDefault(l => l.Id == id) ?? Library.CreateEntity(id, "Unknown Library", "Unknown Address"); + return Library.CreateEntity(id, "", "", []); } public IEnumerable ReadLibraries() { - return _libraries; + return []; } public void UpdateLibrary(Library library) { - var existingLibrary = _libraries.FirstOrDefault(l => l.Id == library.Id); - if (existingLibrary != null) - { - _libraries.Remove(existingLibrary); - _libraries.Add(library); - } + } } } diff --git a/ProjectLibrary/Repositores/Implementations/OrderRepository.cs b/ProjectLibrary/Repositores/Implementations/OrderRepository.cs index 0495c45..65d13ab 100644 --- a/ProjectLibrary/Repositores/Implementations/OrderRepository.cs +++ b/ProjectLibrary/Repositores/Implementations/OrderRepository.cs @@ -8,40 +8,31 @@ namespace ProjectLibrary.Repositories.Implementations { public class OrderRepository : IOrderRepository { - private readonly List _orders = new List(); + public void CreateOrder(Orders order) { - _orders.Add(order); + } public void DeleteOrder(int id) { - var order = _orders.FirstOrDefault(o => o.Id == id); - if (order != null) - { - _orders.Remove(order); - } + } public Orders ReadOrderById(int id) { - return _orders.FirstOrDefault(o => o.Id == id) ?? Orders.CreateEntity(id, 0, 0, 0); + return Orders.CreateEntity(0, DateTime.Now, DateTime.Now, 0, []); } public IEnumerable ReadOrders() { - return _orders; + return [] ; } public void UpdateOrder(Orders order) { - var existingOrder = _orders.FirstOrDefault(o => o.Id == order.Id); - if (existingOrder != null) - { - _orders.Remove(existingOrder); - _orders.Add(order); - } + } } } diff --git a/ProjectLibrary/Repositores/Implementations/ReaderRepository.cs b/ProjectLibrary/Repositores/Implementations/ReaderRepository.cs index 250ccd1..b1bd7e6 100644 --- a/ProjectLibrary/Repositores/Implementations/ReaderRepository.cs +++ b/ProjectLibrary/Repositores/Implementations/ReaderRepository.cs @@ -1,47 +1,36 @@ -using ProjectLibrary.Entites; -using ProjectLibrary.Entities; -using ProjectLibrary.Repositories; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; +using ProjectLibrary.Entities; -namespace ProjectLibrary.Repositories.Implementations +namespace ProjectLibrary.Repositories { public class ReaderRepository : IReaderRepository { - private readonly List _readers = new List(); + - public void CreateReader(Reader reader) + public Reader GetReaderById(int id) { - _readers.Add(reader); + return Reader.CreateEntity(id, "", 0); } - public void DeleteReader(int id) + public void AddReader(Reader reader) { - var reader = _readers.FirstOrDefault(r => r.Id == id); - if (reader != null) - { - _readers.Remove(reader); - } - } - - public Reader ReadReaderById(int id) - { - return _readers.FirstOrDefault(r => r.Id == id) ?? Reader.CreateEntity(id, "Unknown Reader", 0, DateTime.Now); - } - - public IEnumerable ReadReaders() - { - return _readers; + } public void UpdateReader(Reader reader) { - var existingReader = _readers.FirstOrDefault(r => r.Id == reader.Id); - if (existingReader != null) - { - _readers.Remove(existingReader); - _readers.Add(reader); - } + + } + + public void DeleteReader(int id) + { + + } + + public List ReadReaders() + { + return []; } } } diff --git a/ProjectLibrary/Repositores/Implementations/TicketExtensionsRepository.cs b/ProjectLibrary/Repositores/Implementations/TicketExtensionsRepository.cs index 60f8b44..860739d 100644 --- a/ProjectLibrary/Repositores/Implementations/TicketExtensionsRepository.cs +++ b/ProjectLibrary/Repositores/Implementations/TicketExtensionsRepository.cs @@ -1,47 +1,22 @@ using ProjectLibrary.Entites; -using ProjectLibrary.Entities; using ProjectLibrary.Repositories; -using System.Collections.Generic; -using System.Linq; -namespace ProjectLibrary.Repositories.Implementations +public class TicketExtensionsRepository : ITicketExtensionsRepository { - public class TicketExtensionsRepository : ITicketExtensionsRepository + + + public TicketExtensions GetTicketExtensionById(int id) { - private readonly List _ticketExtensions = new List(); + return TicketExtensions.CreateEntity(0, DateTime.Now, DateTime.Now); + } - public void CreateTicketExtension(TicketExtensions ticketExtension) - { - _ticketExtensions.Add(ticketExtension); - } + public void AddTicketExtension(TicketExtensions ticketExtension) + { + + } - public void DeleteTicketExtension(int id) - { - var ticketExtension = _ticketExtensions.FirstOrDefault(t => t.ExtensionID == id); - if (ticketExtension != null) - { - _ticketExtensions.Remove(ticketExtension); - } - } - - public TicketExtensions ReadTicketExtensionById(int id) - { - return _ticketExtensions.FirstOrDefault(t => t.ExtensionID == id) ?? TicketExtensions.CreateEntity(0, id, DateTime.Now, DateTime.Now); - } - - public IEnumerable ReadTicketExtensions() - { - return _ticketExtensions; - } - - public void UpdateTicketExtension(TicketExtensions ticketExtension) - { - var existingTicketExtension = _ticketExtensions.FirstOrDefault(t => t.ExtensionID == ticketExtension.ExtensionID); - if (existingTicketExtension != null) - { - _ticketExtensions.Remove(existingTicketExtension); - _ticketExtensions.Add(ticketExtension); - } - } + public void UpdateTicketExtension(TicketExtensions ticketExtension) + { + } }