diff --git a/ProjectLibrary/Entites/Book.cs b/ProjectLibrary/Entites/Book.cs
index 024f24b..2ad8a04 100644
--- a/ProjectLibrary/Entites/Book.cs
+++ b/ProjectLibrary/Entites/Book.cs
@@ -8,7 +8,6 @@
         public string Author { get; private set; } = string.Empty;
         public string Name { get; private set; } = string.Empty;
         public BookType Type { get; private set; } = BookType.None;
-
         public int LibraryID { get; private set; }
 
         public static Book CreateEntity(int id, string author, string name, BookType type, int libraryID)
diff --git a/ProjectLibrary/Entites/Book_library.cs b/ProjectLibrary/Entites/Book_library.cs
index 63133f1..5c08041 100644
--- a/ProjectLibrary/Entites/Book_library.cs
+++ b/ProjectLibrary/Entites/Book_library.cs
@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace ProjectLibrary.Entites
+namespace ProjectLibrary.Entites
 {
     public class Book_Library
     {
@@ -12,9 +6,7 @@ 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)
+        public static Book_Library CreateEntity(int libraryID, int bookID, int count)
         {
             return new Book_Library
             {
diff --git a/ProjectLibrary/Entites/Ticket_Extension.cs b/ProjectLibrary/Entites/Ticket_Extension.cs
index ae05aaa..2f6f2dc 100644
--- a/ProjectLibrary/Entites/Ticket_Extension.cs
+++ b/ProjectLibrary/Entites/Ticket_Extension.cs
@@ -1,15 +1,8 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace ProjectLibrary.Entites
+namespace ProjectLibrary.Entites
 {
     public class TicketExtensions
     {
         public int ReaderID { get; private set; }
-        public int ExtensionID { get; private set; }
         public DateTime LastUpdateDate { get; private set; }
         public DateTime NextUpdateDate { get; private set; }
 
diff --git a/ProjectLibrary/FormLibrary.Designer.cs b/ProjectLibrary/FormLibrary.Designer.cs
index 3b3ebb0..ad19e59 100644
--- a/ProjectLibrary/FormLibrary.Designer.cs
+++ b/ProjectLibrary/FormLibrary.Designer.cs
@@ -35,8 +35,8 @@
             библиотекиToolStripMenuItem = new ToolStripMenuItem();
             операцииToolStripMenuItem = new ToolStripMenuItem();
             обновлениеБилетаToolStripMenuItem = new ToolStripMenuItem();
-            отчетыToolStripMenuItem = new ToolStripMenuItem();
             заказатьКнигиToolStripMenuItem = new ToolStripMenuItem();
+            отчетыToolStripMenuItem = new ToolStripMenuItem();
             menuStrip1.SuspendLayout();
             SuspendLayout();
             // 
@@ -47,7 +47,8 @@
             menuStrip1.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem, операцииToolStripMenuItem, отчетыToolStripMenuItem });
             menuStrip1.Location = new Point(0, 0);
             menuStrip1.Name = "menuStrip1";
-            menuStrip1.Size = new Size(832, 28);
+            menuStrip1.Padding = new Padding(5, 2, 0, 2);
+            menuStrip1.Size = new Size(728, 24);
             menuStrip1.TabIndex = 0;
             menuStrip1.Text = "menuStrip";
             // 
@@ -55,63 +56,67 @@
             // 
             справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { книгаToolStripMenuItem, читателиToolStripMenuItem, библиотекиToolStripMenuItem });
             справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
-            справочникиToolStripMenuItem.Size = new Size(117, 24);
+            справочникиToolStripMenuItem.Size = new Size(94, 20);
             справочникиToolStripMenuItem.Text = "Справочники";
             // 
             // книгаToolStripMenuItem
             // 
             книгаToolStripMenuItem.Name = "книгаToolStripMenuItem";
-            книгаToolStripMenuItem.Size = new Size(175, 26);
+            книгаToolStripMenuItem.Size = new Size(180, 22);
             книгаToolStripMenuItem.Text = "Книга";
+            книгаToolStripMenuItem.Click += книгаToolStripMenuItem_Click;
             // 
             // читателиToolStripMenuItem
             // 
             читателиToolStripMenuItem.Name = "читателиToolStripMenuItem";
-            читателиToolStripMenuItem.Size = new Size(175, 26);
+            читателиToolStripMenuItem.Size = new Size(180, 22);
             читателиToolStripMenuItem.Text = "Читатели";
             читателиToolStripMenuItem.Click += читателиToolStripMenuItem_Click;
             // 
             // библиотекиToolStripMenuItem
             // 
             библиотекиToolStripMenuItem.Name = "библиотекиToolStripMenuItem";
-            библиотекиToolStripMenuItem.Size = new Size(175, 26);
+            библиотекиToolStripMenuItem.Size = new Size(180, 22);
             библиотекиToolStripMenuItem.Text = "Библиотеки";
+            библиотекиToolStripMenuItem.Click += библиотекиToolStripMenuItem_Click;
             // 
             // операцииToolStripMenuItem
             // 
             операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { обновлениеБилетаToolStripMenuItem, заказатьКнигиToolStripMenuItem });
             операцииToolStripMenuItem.Name = "операцииToolStripMenuItem";
-            операцииToolStripMenuItem.Size = new Size(95, 24);
+            операцииToolStripMenuItem.Size = new Size(75, 20);
             операцииToolStripMenuItem.Text = "Операции";
             // 
             // обновлениеБилетаToolStripMenuItem
             // 
             обновлениеБилетаToolStripMenuItem.Name = "обновлениеБилетаToolStripMenuItem";
-            обновлениеБилетаToolStripMenuItem.Size = new Size(232, 26);
+            обновлениеБилетаToolStripMenuItem.Size = new Size(184, 22);
             обновлениеБилетаToolStripMenuItem.Text = "Обновление билета";
-            // 
-            // отчетыToolStripMenuItem
-            // 
-            отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem";
-            отчетыToolStripMenuItem.Size = new Size(73, 24);
-            отчетыToolStripMenuItem.Text = "Отчеты";
+            обновлениеБилетаToolStripMenuItem.Click += обновлениеБилетаToolStripMenuItem_Click;
             // 
             // заказатьКнигиToolStripMenuItem
             // 
             заказатьКнигиToolStripMenuItem.Name = "заказатьКнигиToolStripMenuItem";
-            заказатьКнигиToolStripMenuItem.Size = new Size(232, 26);
+            заказатьКнигиToolStripMenuItem.Size = new Size(184, 22);
             заказатьКнигиToolStripMenuItem.Text = "Заказать книги";
             заказатьКнигиToolStripMenuItem.Click += заказатьКнигиToolStripMenuItem_Click;
             // 
+            // отчетыToolStripMenuItem
+            // 
+            отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem";
+            отчетыToolStripMenuItem.Size = new Size(60, 20);
+            отчетыToolStripMenuItem.Text = "Отчеты";
+            // 
             // FormLibrary
             // 
-            AutoScaleDimensions = new SizeF(8F, 20F);
+            AutoScaleDimensions = new SizeF(7F, 15F);
             AutoScaleMode = AutoScaleMode.Font;
             BackColor = SystemColors.ButtonHighlight;
             BackgroundImage = Properties.Resources.Снимок_экрана_2024_11_19_132940;
-            ClientSize = new Size(832, 453);
+            ClientSize = new Size(728, 340);
             Controls.Add(menuStrip1);
             MainMenuStrip = menuStrip1;
+            Margin = new Padding(3, 2, 3, 2);
             Name = "FormLibrary";
             StartPosition = FormStartPosition.CenterScreen;
             Text = "Библиотека";
diff --git a/ProjectLibrary/FormLibrary.cs b/ProjectLibrary/FormLibrary.cs
index 3b876b8..1baf67b 100644
--- a/ProjectLibrary/FormLibrary.cs
+++ b/ProjectLibrary/FormLibrary.cs
@@ -1,4 +1,3 @@
-using System.ComponentModel;
 using Unity;
 
 namespace ProjectLibrary
@@ -13,11 +12,6 @@ namespace ProjectLibrary
             _container = container ?? throw new ArgumentNullException(nameof(container));
         }
 
-        private void ���������������ToolStripMenuItem_Click(object sender, EventArgs e)
-        {
-
-        }
-
         private void ��������ToolStripMenuItem_Click(object sender, EventArgs e)
         {
             try
@@ -41,5 +35,41 @@ namespace ProjectLibrary
                 MessageBox.Show(ex.Message, "������", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
+
+        private void �����ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                _container.Resolve<Forms.FBooks>().ShowDialog();
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message, "������", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+        }
+
+        private void ����������ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                _container.Resolve<Forms.FLibraries>().ShowDialog();
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message, "������", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+        }
+
+        private void ����������������ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                _container.Resolve<Forms.FTiclet_Extensions>().ShowDialog();
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message, "������", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+        }
     }
 }
diff --git a/ProjectLibrary/FormLibrary.resx b/ProjectLibrary/FormLibrary.resx
index b48baf1..a0623c8 100644
--- a/ProjectLibrary/FormLibrary.resx
+++ b/ProjectLibrary/FormLibrary.resx
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema
+    Microsoft ResX Schema 
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-
+    
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/ProjectLibrary/Forms/FBook.Designer.cs b/ProjectLibrary/Forms/FBook.Designer.cs
index 892339f..103ab72 100644
--- a/ProjectLibrary/Forms/FBook.Designer.cs
+++ b/ProjectLibrary/Forms/FBook.Designer.cs
@@ -28,8 +28,6 @@
         /// </summary>
         private void InitializeComponent()
         {
-            lblId = new Label();
-            txtId = new TextBox();
             lblAuthor = new Label();
             txtAuthor = new TextBox();
             lblName = new Label();
@@ -37,66 +35,49 @@
             lblType = new Label();
             cmbType = new ComboBox();
             lblLibraryId = new Label();
-            txtLibraryId = new TextBox();
             btnSave = new Button();
             buttonCancel_Click = new Button();
+            comboBoxLibrary = new ComboBox();
             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(100, 20);
-            txtId.Name = "txtId";
-            txtId.ReadOnly = true;
-            txtId.Size = new Size(200, 27);
-            txtId.TabIndex = 1;
-            // 
             // lblAuthor
             // 
             lblAuthor.AutoSize = true;
-            lblAuthor.Location = new Point(20, 60);
+            lblAuthor.Location = new Point(19, 25);
             lblAuthor.Name = "lblAuthor";
-            lblAuthor.Size = new Size(54, 20);
+            lblAuthor.Size = new Size(43, 15);
             lblAuthor.TabIndex = 2;
             lblAuthor.Text = "Автор:";
             // 
             // txtAuthor
             // 
-            txtAuthor.Location = new Point(100, 60);
+            txtAuthor.Location = new Point(115, 25);
             txtAuthor.Name = "txtAuthor";
-            txtAuthor.Size = new Size(200, 27);
+            txtAuthor.Size = new Size(200, 23);
             txtAuthor.TabIndex = 3;
             // 
             // lblName
             // 
             lblName.AutoSize = true;
-            lblName.Location = new Point(20, 100);
+            lblName.Location = new Point(19, 65);
             lblName.Name = "lblName";
-            lblName.Size = new Size(80, 20);
+            lblName.Size = new Size(62, 15);
             lblName.TabIndex = 4;
             lblName.Text = "Название:";
             // 
             // txtName
             // 
-            txtName.Location = new Point(100, 100);
+            txtName.Location = new Point(115, 65);
             txtName.Name = "txtName";
-            txtName.Size = new Size(200, 27);
+            txtName.Size = new Size(200, 23);
             txtName.TabIndex = 5;
             // 
             // lblType
             // 
             lblType.AutoSize = true;
-            lblType.Location = new Point(20, 140);
+            lblType.Location = new Point(19, 105);
             lblType.Name = "lblType";
-            lblType.Size = new Size(38, 20);
+            lblType.Size = new Size(30, 15);
             lblType.TabIndex = 6;
             lblType.Text = "Тип:";
             // 
@@ -105,51 +86,54 @@
             cmbType.DropDownStyle = ComboBoxStyle.DropDownList;
             cmbType.FormattingEnabled = true;
             cmbType.Items.AddRange(new object[] { "Fiction", "Non-Fiction", "Science", "Biography" });
-            cmbType.Location = new Point(100, 140);
+            cmbType.Location = new Point(115, 102);
             cmbType.Name = "cmbType";
-            cmbType.Size = new Size(200, 28);
+            cmbType.Size = new Size(200, 23);
             cmbType.TabIndex = 7;
             // 
             // lblLibraryId
             // 
             lblLibraryId.AutoSize = true;
-            lblLibraryId.Location = new Point(20, 180);
+            lblLibraryId.Location = new Point(19, 145);
             lblLibraryId.Name = "lblLibraryId";
-            lblLibraryId.Size = new Size(114, 20);
+            lblLibraryId.Size = new Size(90, 15);
             lblLibraryId.TabIndex = 8;
             lblLibraryId.Text = "ID библиотеки:";
             // 
-            // txtLibraryId
-            // 
-            txtLibraryId.Location = new Point(140, 177);
-            txtLibraryId.Name = "txtLibraryId";
-            txtLibraryId.Size = new Size(200, 27);
-            txtLibraryId.TabIndex = 9;
-            // 
             // btnSave
             // 
-            btnSave.Location = new Point(20, 220);
+            btnSave.Location = new Point(19, 185);
             btnSave.Name = "btnSave";
             btnSave.Size = new Size(100, 30);
             btnSave.TabIndex = 10;
             btnSave.Text = "Сохранить";
             btnSave.UseVisualStyleBackColor = true;
+            btnSave.Click += btnSave_Click;
             // 
             // buttonCancel_Click
             // 
-            buttonCancel_Click.Location = new Point(240, 220);
+            buttonCancel_Click.Location = new Point(239, 185);
             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;
+            buttonCancel_Click.Click += ButtonCancel_Click;
+            // 
+            // comboBoxLibrary
+            // 
+            comboBoxLibrary.DropDownStyle = ComboBoxStyle.DropDownList;
+            comboBoxLibrary.FormattingEnabled = true;
+            comboBoxLibrary.Items.AddRange(new object[] { "Fiction", "Non-Fiction", "Science", "Biography" });
+            comboBoxLibrary.Location = new Point(115, 145);
+            comboBoxLibrary.Name = "comboBoxLibrary";
+            comboBoxLibrary.Size = new Size(200, 23);
+            comboBoxLibrary.TabIndex = 12;
             // 
             // FBook
             // 
             ClientSize = new Size(400, 300);
+            Controls.Add(comboBoxLibrary);
             Controls.Add(buttonCancel_Click);
-            Controls.Add(lblId);
-            Controls.Add(txtId);
             Controls.Add(lblAuthor);
             Controls.Add(txtAuthor);
             Controls.Add(lblName);
@@ -157,7 +141,6 @@
             Controls.Add(lblType);
             Controls.Add(cmbType);
             Controls.Add(lblLibraryId);
-            Controls.Add(txtLibraryId);
             Controls.Add(btnSave);
             Name = "FBook";
             Text = "Книга";
@@ -166,9 +149,6 @@
         }
 
         #endregion
-
-        private System.Windows.Forms.Label lblId;
-        private System.Windows.Forms.TextBox txtId;
         private System.Windows.Forms.Label lblAuthor;
         private System.Windows.Forms.TextBox txtAuthor;
         private System.Windows.Forms.Label lblName;
@@ -176,8 +156,8 @@
         private System.Windows.Forms.Label lblType;
         private System.Windows.Forms.ComboBox cmbType;
         private System.Windows.Forms.Label lblLibraryId;
-        private System.Windows.Forms.TextBox txtLibraryId;
         private System.Windows.Forms.Button btnSave;
         private Button buttonCancel_Click;
+        private ComboBox comboBoxLibrary;
     }
 }
diff --git a/ProjectLibrary/Forms/FBook.cs b/ProjectLibrary/Forms/FBook.cs
index bc50f71..7a7988c 100644
--- a/ProjectLibrary/Forms/FBook.cs
+++ b/ProjectLibrary/Forms/FBook.cs
@@ -1,124 +1,84 @@
-namespace ProjectLibrary.Forms
+using ProjectLibrary.Entities;
+using ProjectLibrary.Entities.Enums;
+using ProjectLibrary.Repositores;
+using ProjectLibrary.Repositories;
+
+namespace ProjectLibrary.Forms
 {
     public partial class FBook : Form
     {
-        public FBook()
+        private readonly IBookRepository _bookRepository;
+        private int? _bookId;
+
+        public int Id
+        {
+            set
+            {
+                try
+                {
+                    var book = _bookRepository.ReadBookById(value);
+                    if (book == null)
+                    {
+                        throw new InvalidOperationException("Книга не найдена.");
+                    }
+
+                    txtAuthor.Text = book.Author;
+                    txtName.Text = book.Name;
+                    cmbType.SelectedItem = book.Type;
+                    comboBoxLibrary.SelectedItem = book.LibraryID;
+                    _bookId = value;
+                }
+                catch (Exception ex)
+                {
+                    MessageBox.Show(ex.Message, "Ошибка при загрузке данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                }
+            }
+        }
+
+        public FBook(IBookRepository bookRepository, ILibraryRepository libraryRepository)
         {
             InitializeComponent();
-            InitializeFormElements();
+            _bookRepository = bookRepository ?? throw new ArgumentNullException(nameof(bookRepository));
+            comboBoxLibrary.DataSource = libraryRepository.ReadLibraries();
         }
 
-        private void InitializeFormElements()
+        private void btnSave_Click(object sender, EventArgs e)
         {
-            // Заголовок формы
-            this.Text = "Книга";
+            try
+            {
+                if (string.IsNullOrWhiteSpace(txtAuthor.Text) || string.IsNullOrWhiteSpace(txtName.Text) || comboBoxLibrary.SelectedItem == null)
+                {
+                    throw new Exception("Имеются незаполненные поля.");
+                }
 
-            // Создание метки и текстового поля для Id
-            Label lblId = new Label
-            {
-                Text = "ID:",
-                Location = new System.Drawing.Point(20, 20),
-                AutoSize = true
-            };
-            TextBox txtId = new TextBox
-            {
-                Location = new System.Drawing.Point(100, 20),
-                Width = 200,
-                ReadOnly = true // ID обычно только для чтения
-            };
+                var book = Book.CreateEntity(
+                    _bookId ?? 0,
+                    txtAuthor.Text,
+                    txtName.Text,
+                    (BookType)cmbType.SelectedValue,
+                    Convert.ToInt32(comboBoxLibrary.SelectedItem)
+                );
 
-            // Создание метки и текстового поля для Author
-            Label lblAuthor = new Label
-            {
-                Text = "Автор:",
-                Location = new System.Drawing.Point(20, 60),
-                AutoSize = true
-            };
-            TextBox txtAuthor = new TextBox
-            {
-                Location = new System.Drawing.Point(100, 60),
-                Width = 200
-            };
+                if (_bookId.HasValue)
+                {
+                    _bookRepository.UpdateBook(book);
+                }
+                else
+                {
+                    _bookRepository.CreateBook(book);
+                }
 
-            // Создание метки и текстового поля для Name
-            Label lblName = new Label
+                Close();
+            }
+            catch (Exception ex)
             {
-                Text = "Название:",
-                Location = new System.Drawing.Point(20, 100),
-                AutoSize = true
-            };
-            TextBox txtName = new TextBox
-            {
-                Location = new System.Drawing.Point(100, 100),
-                Width = 200
-            };
-
-            // Создание метки и выпадающего списка для Type
-            Label lblType = new Label
-            {
-                Text = "Тип:",
-                Location = new System.Drawing.Point(20, 140),
-                AutoSize = true
-            };
-            ComboBox cmbType = new ComboBox
-            {
-                Location = new System.Drawing.Point(100, 140),
-                Width = 200,
-                DropDownStyle = ComboBoxStyle.DropDownList
-            };
-            cmbType.Items.AddRange(new string[] { "Fiction", "Non-Fiction", "Science", "Biography" }); // Пример данных
-
-            // Создание метки и текстового поля для LibraryID
-            Label lblLibraryId = new Label
-            {
-                Text = "ID библиотеки:",
-                Location = new System.Drawing.Point(20, 180),
-                AutoSize = true
-            };
-            TextBox txtLibraryId = new TextBox
-            {
-                Location = new System.Drawing.Point(100, 180),
-                Width = 200
-            };
-
-            // Кнопка "Сохранить"
-            Button btnSave = new Button
-            {
-                Text = "Сохранить",
-                Location = new System.Drawing.Point(100, 220),
-                Width = 100
-            };
-            btnSave.Click += (sender, e) => SaveData(txtId.Text, txtAuthor.Text, txtName.Text, cmbType.SelectedItem?.ToString(), txtLibraryId.Text);
-
-            // Добавление элементов на форму
-            this.Controls.Add(lblId);
-            this.Controls.Add(txtId);
-            this.Controls.Add(lblAuthor);
-            this.Controls.Add(txtAuthor);
-            this.Controls.Add(lblName);
-            this.Controls.Add(txtName);
-            this.Controls.Add(lblType);
-            this.Controls.Add(cmbType);
-            this.Controls.Add(lblLibraryId);
-            this.Controls.Add(txtLibraryId);
-            this.Controls.Add(btnSave);
+                MessageBox.Show(ex.Message, "Ошибка при сохранении данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
         }
 
-        private void SaveData(string id, string author, string name, string type, string libraryId)
+        private void ButtonCancel_Click(object sender, EventArgs e)
         {
-            // Логика сохранения данных (например, в базу данных)
-            MessageBox.Show("Данные сохранены:\n" +
-                            $"ID: {id}\n" +
-                            $"Автор: {author}\n" +
-                            $"Название: {name}\n" +
-                            $"Тип: {type}\n" +
-                            $"ID библиотеки: {libraryId}");
-        }
-
-        private void buttonCancel_Click_Click(object sender, EventArgs e)
-        {
-            // Закрытие формы без сохранения
-            this.Close();
+            Close();
         }
     }
 }
diff --git a/ProjectLibrary/Forms/FBook.resx b/ProjectLibrary/Forms/FBook.resx
index 8b2ff64..af32865 100644
--- a/ProjectLibrary/Forms/FBook.resx
+++ b/ProjectLibrary/Forms/FBook.resx
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema
+    Microsoft ResX Schema 
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-
+    
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/ProjectLibrary/Forms/FBook_library.Designer.cs b/ProjectLibrary/Forms/FBook_library.Designer.cs
deleted file mode 100644
index 3668682..0000000
--- a/ProjectLibrary/Forms/FBook_library.Designer.cs
+++ /dev/null
@@ -1,126 +0,0 @@
-namespace ProjectLibrary.Forms
-{
-    partial class FBook_library
-    {
-        private System.ComponentModel.IContainer components = null;
-
-        private Label lblBookID;
-        private TextBox txtBookID;
-        private Label lblLibraryID;
-        private TextBox txtLibraryID;
-        private Label lblCount;
-        private TextBox txtCount;
-        private Button btnSave;
-
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows Form Designer generated code
-
-        private void InitializeComponent()
-        {
-            lblBookID = new Label();
-            txtBookID = new TextBox();
-            lblLibraryID = new Label();
-            txtLibraryID = new TextBox();
-            lblCount = new Label();
-            txtCount = 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(140, 20);
-            txtBookID.Name = "txtBookID";
-            txtBookID.ReadOnly = true;
-            txtBookID.Size = new Size(200, 27);
-            txtBookID.TabIndex = 1;
-            // 
-            // lblLibraryID
-            // 
-            lblLibraryID.AutoSize = true;
-            lblLibraryID.Location = new Point(20, 60);
-            lblLibraryID.Name = "lblLibraryID";
-            lblLibraryID.Size = new Size(114, 20);
-            lblLibraryID.TabIndex = 2;
-            lblLibraryID.Text = "ID библиотеки:";
-            // 
-            // txtLibraryID
-            // 
-            txtLibraryID.Location = new Point(140, 57);
-            txtLibraryID.Name = "txtLibraryID";
-            txtLibraryID.ReadOnly = true;
-            txtLibraryID.Size = new Size(200, 27);
-            txtLibraryID.TabIndex = 3;
-            // 
-            // lblCount
-            // 
-            lblCount.AutoSize = true;
-            lblCount.Location = new Point(20, 100);
-            lblCount.Name = "lblCount";
-            lblCount.Size = new Size(93, 20);
-            lblCount.TabIndex = 4;
-            lblCount.Text = "Количество:";
-            // 
-            // txtCount
-            // 
-            txtCount.Location = new Point(140, 93);
-            txtCount.Name = "txtCount";
-            txtCount.Size = new Size(200, 27);
-            txtCount.TabIndex = 5;
-            // 
-            // btnSave
-            // 
-            btnSave.Location = new Point(20, 140);
-            btnSave.Name = "btnSave";
-            btnSave.Size = new Size(100, 30);
-            btnSave.TabIndex = 6;
-            btnSave.Text = "Сохранить";
-            btnSave.Click += btnSave_Click;
-            // 
-            // buttonCancel_Click
-            // 
-            buttonCancel_Click.Location = new Point(240, 140);
-            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_library
-            // 
-            ClientSize = new Size(400, 200);
-            Controls.Add(buttonCancel_Click);
-            Controls.Add(lblBookID);
-            Controls.Add(txtBookID);
-            Controls.Add(lblLibraryID);
-            Controls.Add(txtLibraryID);
-            Controls.Add(lblCount);
-            Controls.Add(txtCount);
-            Controls.Add(btnSave);
-            Name = "FBook_library";
-            Text = "Книга в библиотеке";
-            ResumeLayout(false);
-            PerformLayout();
-        }
-        #endregion
-
-        private Button buttonCancel_Click;
-    }
-}
diff --git a/ProjectLibrary/Forms/FBook_library.cs b/ProjectLibrary/Forms/FBook_library.cs
deleted file mode 100644
index 96613b1..0000000
--- a/ProjectLibrary/Forms/FBook_library.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using ProjectLibrary.Entites;
-
-namespace ProjectLibrary.Forms
-{
-    public partial class FBook_library : Form
-    {
-        private Book_Library _bookLibrary;
-
-        public FBook_library(Book_Library bookLibrary)
-        {
-            InitializeComponent();
-            _bookLibrary = bookLibrary;
-            LoadLibraryData();
-        }
-
-        private void LoadLibraryData()
-        {
-            txtBookID.Text = _bookLibrary.BookID.ToString();
-            txtLibraryID.Text = _bookLibrary.LibraryID.ToString();
-            txtCount.Text = _bookLibrary.Count.ToString();
-        }
-
-        private void btnSave_Click(object sender, EventArgs e)
-        {
-            // Создание новой сущности с измененными данными
-            var updatedBookLibrary = Book_Library.CreateEntity(
-                int.Parse(txtBookID.Text),
-                int.Parse(txtLibraryID.Text),
-                int.Parse(txtCount.Text)
-            );
-
-            // Обновление внутренней переменной
-            _bookLibrary = updatedBookLibrary;
-
-            MessageBox.Show("Данные успешно сохранены!");
-        }
-
-        private void buttonCancel_Click_Click(object sender, EventArgs e)
-        {
-            // Закрытие формы без сохранения
-            this.Close();
-        }
-    }
-}
diff --git a/ProjectLibrary/Forms/FBooks.Designer.cs b/ProjectLibrary/Forms/FBooks.Designer.cs
new file mode 100644
index 0000000..b11ed39
--- /dev/null
+++ b/ProjectLibrary/Forms/FBooks.Designer.cs
@@ -0,0 +1,106 @@
+namespace ProjectLibrary.Forms
+{
+    partial class FBooks
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            dataGridViewBooks = new DataGridView();
+            buttonAdd = new Button();
+            buttonUpdate = new Button();
+            buttonRemove = new Button();
+            ((System.ComponentModel.ISupportInitialize)dataGridViewBooks).BeginInit();
+            SuspendLayout();
+            // 
+            // dataGridViewBooks
+            // 
+            dataGridViewBooks.AllowUserToAddRows = false;
+            dataGridViewBooks.AllowUserToDeleteRows = false;
+            dataGridViewBooks.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridViewBooks.Location = new Point(10, 9);
+            dataGridViewBooks.Margin = new Padding(3, 2, 3, 2);
+            dataGridViewBooks.Name = "dataGridViewBooks";
+            dataGridViewBooks.ReadOnly = true;
+            dataGridViewBooks.RowHeadersWidth = 51;
+            dataGridViewBooks.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
+            dataGridViewBooks.Size = new Size(602, 254);
+            dataGridViewBooks.TabIndex = 8;
+            // 
+            // buttonAdd
+            // 
+            buttonAdd.Location = new Point(27, 267);
+            buttonAdd.Margin = new Padding(3, 2, 3, 2);
+            buttonAdd.Name = "buttonAdd";
+            buttonAdd.Size = new Size(161, 37);
+            buttonAdd.TabIndex = 9;
+            buttonAdd.Text = "Добавить";
+            buttonAdd.Click += buttonAdd_Click;
+            // 
+            // buttonUpdate
+            // 
+            buttonUpdate.Location = new Point(247, 267);
+            buttonUpdate.Margin = new Padding(3, 2, 3, 2);
+            buttonUpdate.Name = "buttonUpdate";
+            buttonUpdate.Size = new Size(161, 37);
+            buttonUpdate.TabIndex = 10;
+            buttonUpdate.Text = "Изменить";
+            buttonUpdate.Click += buttonUpdate_Click;
+            // 
+            // buttonRemove
+            // 
+            buttonRemove.Location = new Point(452, 267);
+            buttonRemove.Margin = new Padding(3, 2, 3, 2);
+            buttonRemove.Name = "buttonRemove";
+            buttonRemove.Size = new Size(161, 37);
+            buttonRemove.TabIndex = 11;
+            buttonRemove.Text = "Удалить";
+            buttonRemove.Click += buttonRemove_Click;
+            // 
+            // FBooks
+            // 
+            AutoScaleDimensions = new SizeF(7F, 15F);
+            AutoScaleMode = AutoScaleMode.Font;
+            ClientSize = new Size(700, 338);
+            Controls.Add(dataGridViewBooks);
+            Controls.Add(buttonAdd);
+            Controls.Add(buttonUpdate);
+            Controls.Add(buttonRemove);
+            Margin = new Padding(3, 2, 3, 2);
+            Name = "FBooks";
+            Text = "FBooks";
+            Load += FBooks_Load;
+            ((System.ComponentModel.ISupportInitialize)dataGridViewBooks).EndInit();
+            ResumeLayout(false);
+        }
+
+        #endregion
+
+        private DataGridView dataGridViewBooks;
+        private Button buttonAdd;
+        private Button buttonUpdate;
+        private Button buttonRemove;
+    }
+}
\ No newline at end of file
diff --git a/ProjectLibrary/Forms/FBooks.cs b/ProjectLibrary/Forms/FBooks.cs
new file mode 100644
index 0000000..2342fcc
--- /dev/null
+++ b/ProjectLibrary/Forms/FBooks.cs
@@ -0,0 +1,104 @@
+using ProjectLibrary.Repositores;
+using Unity;
+
+namespace ProjectLibrary.Forms
+{
+    public partial class FBooks : Form
+    {
+        private readonly IUnityContainer _container;
+        private readonly IBookRepository _bookRepository;
+
+        public FBooks(IUnityContainer container, IBookRepository bookRepository)
+        {
+            InitializeComponent();
+            _container = container ?? throw new ArgumentNullException(nameof(container));
+            _bookRepository = bookRepository ?? throw new ArgumentNullException(nameof(bookRepository));
+        }
+
+        private void LoadList()
+        {
+            dataGridViewBooks.DataSource = _bookRepository.ReadBooks();
+        }
+
+        private bool TryGetIdentifierFromSelectedRow(out int id)
+        {
+            id = 0;
+            if (dataGridViewBooks.SelectedRows.Count < 1)
+            {
+                MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                return false;
+            }
+
+            id = Convert.ToInt32(dataGridViewBooks.SelectedRows[0].Cells["Id"].Value);
+            return true;
+        }
+
+        private void buttonAdd_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                _container.Resolve<FBook>().ShowDialog();
+                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<FBook>();
+                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
+            {
+                _bookRepository.DeleteBook(findId);
+                LoadList();
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+        }
+
+        private void FBooks_Load(object sender, EventArgs e)
+        {
+            try
+            {
+                LoadList();
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+        }
+    }
+}
diff --git a/ProjectLibrary/Forms/FBook_library.resx b/ProjectLibrary/Forms/FBooks.resx
similarity index 99%
rename from ProjectLibrary/Forms/FBook_library.resx
rename to ProjectLibrary/Forms/FBooks.resx
index 8b2ff64..af32865 100644
--- a/ProjectLibrary/Forms/FBook_library.resx
+++ b/ProjectLibrary/Forms/FBooks.resx
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema
+    Microsoft ResX Schema 
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-
+    
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/ProjectLibrary/Forms/FLibraries.Designer.cs b/ProjectLibrary/Forms/FLibraries.Designer.cs
new file mode 100644
index 0000000..0334104
--- /dev/null
+++ b/ProjectLibrary/Forms/FLibraries.Designer.cs
@@ -0,0 +1,105 @@
+namespace ProjectLibrary.Forms
+{
+    partial class FLibraries
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            dataGridViewOrders = new DataGridView();
+            buttonAdd = new Button();
+            buttonUpdate = new Button();
+            buttonRemove = new Button();
+            ((System.ComponentModel.ISupportInitialize)dataGridViewOrders).BeginInit();
+            SuspendLayout();
+            // 
+            // dataGridViewOrders
+            // 
+            dataGridViewOrders.AllowUserToAddRows = false;
+            dataGridViewOrders.AllowUserToDeleteRows = false;
+            dataGridViewOrders.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridViewOrders.Location = new Point(12, 11);
+            dataGridViewOrders.Margin = new Padding(3, 2, 3, 2);
+            dataGridViewOrders.Name = "dataGridViewOrders";
+            dataGridViewOrders.ReadOnly = true;
+            dataGridViewOrders.RowHeadersWidth = 51;
+            dataGridViewOrders.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
+            dataGridViewOrders.Size = new Size(525, 225);
+            dataGridViewOrders.TabIndex = 8;
+            // 
+            // buttonAdd
+            // 
+            buttonAdd.Location = new Point(12, 251);
+            buttonAdd.Margin = new Padding(3, 2, 3, 2);
+            buttonAdd.Name = "buttonAdd";
+            buttonAdd.Size = new Size(88, 22);
+            buttonAdd.TabIndex = 9;
+            buttonAdd.Text = "Добавить";
+            buttonAdd.Click += buttonAdd_Click;
+            // 
+            // buttonUpdate
+            // 
+            buttonUpdate.Location = new Point(227, 251);
+            buttonUpdate.Margin = new Padding(3, 2, 3, 2);
+            buttonUpdate.Name = "buttonUpdate";
+            buttonUpdate.Size = new Size(88, 22);
+            buttonUpdate.TabIndex = 10;
+            buttonUpdate.Text = "Изменить";
+            buttonUpdate.Click += buttonUpdate_Click;
+            // 
+            // buttonRemove
+            // 
+            buttonRemove.Location = new Point(450, 251);
+            buttonRemove.Margin = new Padding(3, 2, 3, 2);
+            buttonRemove.Name = "buttonRemove";
+            buttonRemove.Size = new Size(88, 22);
+            buttonRemove.TabIndex = 11;
+            buttonRemove.Text = "Удалить";
+            buttonRemove.Click += buttonRemove_Click;
+            // 
+            // FLibraries
+            // 
+            AutoScaleDimensions = new SizeF(7F, 15F);
+            AutoScaleMode = AutoScaleMode.Font;
+            ClientSize = new Size(562, 283);
+            Controls.Add(dataGridViewOrders);
+            Controls.Add(buttonAdd);
+            Controls.Add(buttonUpdate);
+            Controls.Add(buttonRemove);
+            Name = "FLibraries";
+            Text = "FLibraries";
+            Load += FLibraries_Load;
+            ((System.ComponentModel.ISupportInitialize)dataGridViewOrders).EndInit();
+            ResumeLayout(false);
+        }
+
+        #endregion
+
+        private DataGridView dataGridViewOrders;
+        private Button buttonAdd;
+        private Button buttonUpdate;
+        private Button buttonRemove;
+    }
+}
\ No newline at end of file
diff --git a/ProjectLibrary/Forms/FLibraries.cs b/ProjectLibrary/Forms/FLibraries.cs
new file mode 100644
index 0000000..499a120
--- /dev/null
+++ b/ProjectLibrary/Forms/FLibraries.cs
@@ -0,0 +1,102 @@
+using ProjectLibrary.Repositories;
+using Unity;
+
+namespace ProjectLibrary.Forms
+{
+    public partial class FLibraries : Form
+    {
+        private readonly IUnityContainer _container;
+        private readonly ILibraryRepository _libraryRepository;
+
+        public FLibraries(IUnityContainer container, ILibraryRepository libraryRepository)
+        {
+            InitializeComponent();
+            _container = container ?? throw new ArgumentNullException(nameof(container));
+            _libraryRepository = libraryRepository ?? throw new ArgumentNullException(nameof(libraryRepository));
+        }
+
+        private void buttonAdd_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                _container.Resolve<FLibrary>().ShowDialog();
+                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<FLibrary>();
+                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
+            {
+                _libraryRepository.DeleteLibrary(findId);
+                LoadList();
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+        }
+
+        private void FLibraries_Load(object sender, EventArgs e)
+        {
+            try
+            {
+                LoadList();
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+        }
+        private void LoadList()
+        {
+            dataGridViewOrders.DataSource = _libraryRepository.ReadLibraries();
+        }
+        private bool TryGetIdentifierFromSelectedRow(out int id)
+        {
+            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;
+        }
+    }
+}
diff --git a/ProjectLibrary/Forms/FLibraries.resx b/ProjectLibrary/Forms/FLibraries.resx
new file mode 100644
index 0000000..af32865
--- /dev/null
+++ b/ProjectLibrary/Forms/FLibraries.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!--
+    Microsoft ResX Schema 
+
+    Version 2.0
+
+    The primary goals of this format is to allow a simple XML format
+    that is mostly human readable. The generation and parsing of the
+    various data types are done through the TypeConverter classes
+    associated with the data types.
+
+    Example:
+
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+
+    There are any number of "resheader" rows that contain simple
+    name/value pairs.
+
+    Each data row contains a name, and value. The row also contains a
+    type or mimetype. Type corresponds to a .NET class that support
+    text/value conversion through the TypeConverter architecture.
+    Classes that don't support this are serialized and stored with the
+    mimetype set.
+
+    The mimetype is used for serialized objects, and tells the
+    ResXResourceReader how to depersist the object. This is currently not
+    extensible. For a given mimetype the value must be set accordingly:
+
+    Note - application/x-microsoft.net.object.binary.base64 is the format
+    that the ResXResourceWriter will generate, however the reader can
+    read any of the formats listed below.
+
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/ProjectLibrary/Forms/FLibrary.Designer.cs b/ProjectLibrary/Forms/FLibrary.Designer.cs
index e04e04b..05898f0 100644
--- a/ProjectLibrary/Forms/FLibrary.Designer.cs
+++ b/ProjectLibrary/Forms/FLibrary.Designer.cs
@@ -3,14 +3,11 @@
     partial class FLibrary
     {
         private System.ComponentModel.IContainer components = null;
-
-        private Label lblId;
-        private TextBox txtId;
         private Label lblName;
         private TextBox txtName;
         private Label lblAddress;
         private TextBox txtAddress;
-        private Button btnSave;
+        private Button ButtonSave;
 
         protected override void Dispose(bool disposing)
         {
@@ -23,100 +20,113 @@
 
         private void InitializeComponent()
         {
-            lblId = new Label();
-            txtId = new TextBox();
             lblName = new Label();
             txtName = new TextBox();
             lblAddress = new Label();
             txtAddress = new TextBox();
-            btnSave = new Button();
+            ButtonSave = new Button();
             buttonCancel_Click = new Button();
+            dataGridView = new DataGridView();
+            Book = new DataGridViewComboBoxColumn();
+            Count = new DataGridViewTextBoxColumn();
+            ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
             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(100, 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(20, 9);
             lblName.Name = "lblName";
-            lblName.Size = new Size(42, 20);
+            lblName.Size = new Size(62, 15);
             lblName.TabIndex = 2;
-            lblName.Text = "Имя:";
+            lblName.Text = "Название:";
             // 
             // txtName
             // 
-            txtName.Location = new Point(100, 60);
+            txtName.Location = new Point(100, 12);
             txtName.Name = "txtName";
-            txtName.Size = new Size(200, 27);
+            txtName.Size = new Size(200, 23);
             txtName.TabIndex = 3;
             // 
             // lblAddress
             // 
             lblAddress.AutoSize = true;
-            lblAddress.Location = new Point(20, 100);
+            lblAddress.Location = new Point(20, 49);
             lblAddress.Name = "lblAddress";
-            lblAddress.Size = new Size(54, 20);
+            lblAddress.Size = new Size(43, 15);
             lblAddress.TabIndex = 4;
             lblAddress.Text = "Адрес:";
             // 
             // txtAddress
             // 
-            txtAddress.Location = new Point(100, 100);
+            txtAddress.Location = new Point(100, 49);
             txtAddress.Name = "txtAddress";
-            txtAddress.Size = new Size(200, 27);
+            txtAddress.Size = new Size(200, 23);
             txtAddress.TabIndex = 5;
             // 
-            // btnSave
+            // ButtonSave
             // 
-            btnSave.Location = new Point(20, 133);
-            btnSave.Name = "btnSave";
-            btnSave.Size = new Size(100, 30);
-            btnSave.TabIndex = 6;
-            btnSave.Text = "Сохранить";
-            btnSave.Click += btnSave_Click;
+            ButtonSave.Location = new Point(20, 224);
+            ButtonSave.Name = "ButtonSave";
+            ButtonSave.Size = new Size(100, 27);
+            ButtonSave.TabIndex = 14;
+            ButtonSave.Text = "Сохранить";
+            ButtonSave.Click += ButtonSave_Click;
             // 
             // buttonCancel_Click
             // 
-            buttonCancel_Click.Location = new Point(200, 133);
+            buttonCancel_Click.Location = new Point(200, 222);
             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;
             // 
+            // dataGridView
+            // 
+            dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridView.Columns.AddRange(new DataGridViewColumn[] { Book, Count });
+            dataGridView.Location = new Point(20, 93);
+            dataGridView.Name = "dataGridView";
+            dataGridView.RowHeadersWidth = 51;
+            dataGridView.Size = new Size(280, 123);
+            dataGridView.TabIndex = 13;
+            // 
+            // Book
+            // 
+            Book.HeaderText = "Book";
+            Book.MinimumWidth = 6;
+            Book.Name = "Book";
+            Book.SortMode = DataGridViewColumnSortMode.Automatic;
+            Book.Width = 125;
+            // 
+            // Count
+            // 
+            Count.HeaderText = "Count";
+            Count.MinimumWidth = 6;
+            Count.Name = "Count";
+            Count.Width = 125;
+            // 
             // FLibrary
             // 
-            ClientSize = new Size(400, 200);
+            ClientSize = new Size(400, 436);
+            Controls.Add(dataGridView);
             Controls.Add(buttonCancel_Click);
-            Controls.Add(lblId);
-            Controls.Add(txtId);
             Controls.Add(lblName);
             Controls.Add(txtName);
             Controls.Add(lblAddress);
             Controls.Add(txtAddress);
-            Controls.Add(btnSave);
+            Controls.Add(ButtonSave);
             Name = "FLibrary";
             Text = "Библиотека";
+            ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
             ResumeLayout(false);
             PerformLayout();
         }
 
         private Button buttonCancel_Click;
+        private DataGridView dataGridView;
+        private DataGridViewComboBoxColumn Book;
+        private DataGridViewTextBoxColumn Count;
     }
 }
diff --git a/ProjectLibrary/Forms/FLibrary.cs b/ProjectLibrary/Forms/FLibrary.cs
index af739ec..e771c1c 100644
--- a/ProjectLibrary/Forms/FLibrary.cs
+++ b/ProjectLibrary/Forms/FLibrary.cs
@@ -1,36 +1,94 @@
-using System;
+using ProjectLibrary.Entites;
+using ProjectLibrary.Repositories;
+using ProjectLibrary.Repositories.Implementations;
 using System.Windows.Forms;
-using ProjectLibrary.Entites;
+
 
 namespace ProjectLibrary.Forms
 {
     public partial class FLibrary : Form
     {
-        private Library _library;
+        private readonly ILibraryRepository _libraryRepository;
+        private int? _orderId;
+        public int Id
+        {
+            set
+            {
+                try
+                {
+                    var library = _libraryRepository.ReadLibraryById(value);
+                    if (library == null)
+                    {
+                        throw new InvalidOperationException("Заказ не найден.");
+                    }
 
-        public FLibrary(Library library)
+                    txtName.Text = library.Name;
+                    txtAddress.Text = library.Address;
+                    dataGridView.DataSource = library.BookLibrary;
+                    _orderId = value;
+                }
+                catch (Exception ex)
+                {
+                    MessageBox.Show(ex.Message, "Ошибка при загрузке данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                }
+            }
+        }
+
+        public FLibrary(ILibraryRepository libraryRepository)
         {
             InitializeComponent();
-            _library = library;
-            LoadLibraryData();
+            _libraryRepository = libraryRepository ?? throw new ArgumentNullException(nameof(libraryRepository));
         }
 
-        private void LoadLibraryData()
+        private void ButtonSave_Click(object sender, EventArgs e)
         {
-            txtId.Text = _library.Id.ToString();
-            txtName.Text = _library.Name;
-            txtAddress.Text = _library.Address;
-        }
+            try
+            {
+                if (string.IsNullOrWhiteSpace(txtName.Text) || string.IsNullOrWhiteSpace(txtAddress.Text))
+                {
+                    throw new Exception("Не все поля заполнены.");
+                }
 
-        private void btnSave_Click(object sender, EventArgs e)
-        {
-            
+                var library = Library.CreateEntity(
+                    _orderId ?? 0,
+                    txtName.Text,
+                    txtAddress.Text,
+                    CreateListBooksFromDataGrid()
+                );
+
+                if (_orderId.HasValue)
+                {
+                    _libraryRepository.UpdateLibrary(library);
+                }
+                else
+                {
+                    _libraryRepository.CreateLibrary(library);
+                }
+                Close();
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message, "Ошибка при сохранении данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
         }
 
         private void buttonCancel_Click_Click(object sender, EventArgs e)
         {
-            // Закрытие формы без сохранения
             this.Close();
         }
+
+        private List<Book_Library> CreateListBooksFromDataGrid()
+        {
+            var list = new List<Book_Library>();
+            foreach (DataGridViewRow row in dataGridView.Rows)
+            {
+                if (row.Cells["Book"].Value == null || row.Cells["Count"].Value == null)
+                {
+                    continue;
+                }
+                list.Add(Book_Library.CreateEntity(0, Convert.ToInt32(row.Cells["ColumnBook"].Value), Convert.ToInt32(row.Cells["ColumnCount"].Value)));
+            }
+            return list;
+        }
     }
 }
diff --git a/ProjectLibrary/Forms/FLibrary.resx b/ProjectLibrary/Forms/FLibrary.resx
index 8b2ff64..5faf464 100644
--- a/ProjectLibrary/Forms/FLibrary.resx
+++ b/ProjectLibrary/Forms/FLibrary.resx
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema
+    Microsoft ResX Schema 
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-
+    
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -117,4 +117,10 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <metadata name="Book.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="Count.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
 </root>
\ No newline at end of file
diff --git a/ProjectLibrary/Forms/FOrder.Designer.cs b/ProjectLibrary/Forms/FOrder.Designer.cs
index be09ca4..1753305 100644
--- a/ProjectLibrary/Forms/FOrder.Designer.cs
+++ b/ProjectLibrary/Forms/FOrder.Designer.cs
@@ -30,10 +30,10 @@
             lblBookID = new Label();
             btnSave = new Button();
             buttonCancel_Click = new Button();
-            comboBox1 = new ComboBox();
-            dataGridViewIDBook = new DataGridView();
+            comboBox = new ComboBox();
+            dataGridViewBook = new DataGridView();
             Book = new DataGridViewComboBoxColumn();
-            ((System.ComponentModel.ISupportInitialize)dataGridViewIDBook).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)dataGridViewBook).BeginInit();
             SuspendLayout();
             // 
             // lblOrderDate
@@ -41,7 +41,7 @@
             lblOrderDate.AutoSize = true;
             lblOrderDate.Location = new Point(12, 25);
             lblOrderDate.Name = "lblOrderDate";
-            lblOrderDate.Size = new Size(93, 20);
+            lblOrderDate.Size = new Size(72, 15);
             lblOrderDate.TabIndex = 2;
             lblOrderDate.Text = "Дата заказа:";
             // 
@@ -49,7 +49,7 @@
             // 
             txtOrderDate.Location = new Point(129, 25);
             txtOrderDate.Name = "txtOrderDate";
-            txtOrderDate.Size = new Size(200, 27);
+            txtOrderDate.Size = new Size(200, 23);
             txtOrderDate.TabIndex = 3;
             // 
             // lblReturnDate
@@ -57,7 +57,7 @@
             lblReturnDate.AutoSize = true;
             lblReturnDate.Location = new Point(12, 65);
             lblReturnDate.Name = "lblReturnDate";
-            lblReturnDate.Size = new Size(111, 20);
+            lblReturnDate.Size = new Size(86, 15);
             lblReturnDate.TabIndex = 4;
             lblReturnDate.Text = "Дата возврата:";
             // 
@@ -65,7 +65,7 @@
             // 
             txtReturnDate.Location = new Point(129, 65);
             txtReturnDate.Name = "txtReturnDate";
-            txtReturnDate.Size = new Size(200, 27);
+            txtReturnDate.Size = new Size(200, 23);
             txtReturnDate.TabIndex = 5;
             // 
             // lblReaderID
@@ -73,7 +73,7 @@
             lblReaderID.AutoSize = true;
             lblReaderID.Location = new Point(12, 105);
             lblReaderID.Name = "lblReaderID";
-            lblReaderID.Size = new Size(92, 20);
+            lblReaderID.Size = new Size(73, 15);
             lblReaderID.TabIndex = 6;
             lblReaderID.Text = "ID читателя:";
             // 
@@ -82,7 +82,7 @@
             lblBookID.AutoSize = true;
             lblBookID.Location = new Point(12, 145);
             lblBookID.Name = "lblBookID";
-            lblBookID.Size = new Size(71, 20);
+            lblBookID.Size = new Size(56, 15);
             lblBookID.TabIndex = 8;
             lblBookID.Text = "ID книги:";
             // 
@@ -94,7 +94,6 @@
             btnSave.TabIndex = 10;
             btnSave.Text = "Сохранить";
             btnSave.Click += ButtonSave_Click;
-
             // 
             // buttonCancel_Click
             // 
@@ -105,22 +104,22 @@
             buttonCancel_Click.Text = "Отмена";
             buttonCancel_Click.Click += ButtonCancel_Click;
             // 
-            // comboBox1
+            // comboBox
             // 
-            comboBox1.Location = new Point(129, 108);
-            comboBox1.Name = "comboBox1";
-            comboBox1.Size = new Size(203, 28);
-            comboBox1.TabIndex = 0;
+            comboBox.Location = new Point(129, 108);
+            comboBox.Name = "comboBox";
+            comboBox.Size = new Size(203, 23);
+            comboBox.TabIndex = 0;
             // 
-            // dataGridViewIDBook
+            // dataGridViewBook
             // 
-            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;
+            dataGridViewBook.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridViewBook.Columns.AddRange(new DataGridViewColumn[] { Book });
+            dataGridViewBook.Location = new Point(129, 151);
+            dataGridViewBook.Name = "dataGridViewBook";
+            dataGridViewBook.RowHeadersWidth = 51;
+            dataGridViewBook.Size = new Size(200, 81);
+            dataGridViewBook.TabIndex = 12;
             // 
             // Book
             // 
@@ -129,11 +128,11 @@
             Book.Name = "Book";
             Book.Width = 125;
             // 
-            // FOrders
+            // FOrder
             // 
             ClientSize = new Size(372, 332);
-            Controls.Add(dataGridViewIDBook);
-            Controls.Add(comboBox1);
+            Controls.Add(dataGridViewBook);
+            Controls.Add(comboBox);
             Controls.Add(buttonCancel_Click);
             Controls.Add(lblOrderDate);
             Controls.Add(txtOrderDate);
@@ -142,16 +141,16 @@
             Controls.Add(lblReaderID);
             Controls.Add(lblBookID);
             Controls.Add(btnSave);
-            Name = "FOrders";
+            Name = "FOrder";
             Text = "Заказы";
-            ((System.ComponentModel.ISupportInitialize)dataGridViewIDBook).EndInit();
+            ((System.ComponentModel.ISupportInitialize)dataGridViewBook).EndInit();
             ResumeLayout(false);
             PerformLayout();
         }
 
         private Button buttonCancel_Click;
-        private ComboBox comboBox1;
-        private DataGridView dataGridViewIDBook;
+        private ComboBox comboBox;
+        private DataGridView dataGridViewBook;
         private DataGridViewComboBoxColumn Book;
     }
 }
diff --git a/ProjectLibrary/Forms/FOrder.cs b/ProjectLibrary/Forms/FOrder.cs
index 65ae9d1..4a0af10 100644
--- a/ProjectLibrary/Forms/FOrder.cs
+++ b/ProjectLibrary/Forms/FOrder.cs
@@ -1,111 +1,84 @@
 using ProjectLibrary.Repositories;
-using Unity;
 using ProjectLibrary.Entites;
+using System.Xml.Linq;
 
 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)
+        public FOrder(IOrderRepository orderRepository)
         {
             InitializeComponent();
-            _container = container ?? throw new ArgumentNullException(nameof(container));
-            _orderRepository = orderRepository ?? throw new ArgumentNullException(nameof(orderRepository));
-           
+            _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
+        public int Id
         {
             set
             {
-                _orderId = value;
+                try
+                {
+                    var order = _orderRepository.ReadOrderById(value);
+                    if (order == null)
+                    {
+                        throw new InvalidOperationException("Заказ не найден.");
+                    }
+
+                    txtOrderDate.Text = order.OrderDate.ToString();
+                    txtReturnDate.Text = order.ReturnDate.ToString();
+                    comboBox.SelectedItem = order.ReaderID;
+                    dataGridViewBook.DataSource = order.BookOrders;
+                    _orderId = value;
+                }
+                catch (Exception ex)
+                {
+                    MessageBox.Show(ex.Message, "Ошибка при загрузке данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                }
             }
         }
 
-        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<Book_Orders> CreateListMaterialFromDataGrid()
+        private List<Book_Orders> CreateListBooksFromDataGrid()
         {
             var list = new List<Book_Orders>();
-            foreach (DataGridViewRow row in dataGridViewIDBook.Rows)
+            foreach (DataGridViewRow row in dataGridViewBook.Rows)
             {
-                if (row.Cells["ColumnMaterials"].Value == null || row.Cells["ColumnCount"].Value == null)
+                if (row.Cells["ColumnBook"].Value == null)
                 {
                     continue;
                 }
-                list.Add(Book_Orders.CreateEntity(0, Convert.ToInt32(row.Cells["ColumnMaterials"].Value)));
+                list.Add(Book_Orders.CreateEntity(0, Convert.ToInt32(row.Cells["ColumnBook"].Value)));
             }
             return list;
         }
+
         private void ButtonSave_Click(object sender, EventArgs e)
         {
             try
             {
-                if (string.IsNullOrWhiteSpace(txtOrderDate.Text) || string.IsNullOrWhiteSpace(txtReturnDate.Text))
+                if (string.IsNullOrWhiteSpace(txtOrderDate.Text) || string.IsNullOrWhiteSpace(txtReturnDate.Text) || comboBox.SelectedItem == null)
                 {
                     throw new Exception("Не все поля заполнены.");
                 }
 
-
-                var updatedOrder = Orders.CreateEntity(
+                var order = Orders.CreateEntity(
                     _orderId ?? 0,
                     DateTime.Parse(txtOrderDate.Text),
                     DateTime.Parse(txtReturnDate.Text),
-                    int.Parse(comboBox1.SelectedItem.ToString()),
-                    CreateListMaterialFromDataGrid()
-                    
+                    int.Parse(comboBox.SelectedItem.ToString()),
+                    CreateListBooksFromDataGrid()
                 );
 
                 if (_orderId.HasValue)
                 {
-                    _orderRepository.UpdateOrder(updatedOrder);
+                    _orderRepository.UpdateOrder(order);
                 }
                 else
                 {
-                    _orderRepository.CreateOrder(updatedOrder);
+                    _orderRepository.CreateOrder(order);
                 }
-
-                MessageBox.Show("Данные успешно сохранены.", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 Close();
             }
             catch (Exception ex)
diff --git a/ProjectLibrary/Forms/FOrder.resx b/ProjectLibrary/Forms/FOrder.resx
index 9770c5a..eacd88f 100644
--- a/ProjectLibrary/Forms/FOrder.resx
+++ b/ProjectLibrary/Forms/FOrder.resx
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema
+    Microsoft ResX Schema 
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-
+    
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -120,4 +120,7 @@
   <metadata name="Book.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
+  <metadata name="Book.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
 </root>
\ No newline at end of file
diff --git a/ProjectLibrary/Forms/FOrders.Designer.cs b/ProjectLibrary/Forms/FOrders.Designer.cs
index ee0095c..c1b187a 100644
--- a/ProjectLibrary/Forms/FOrders.Designer.cs
+++ b/ProjectLibrary/Forms/FOrders.Designer.cs
@@ -40,52 +40,58 @@
             dataGridViewOrders.AllowUserToAddRows = false;
             dataGridViewOrders.AllowUserToDeleteRows = false;
             dataGridViewOrders.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
-            dataGridViewOrders.Location = new Point(12, 12);
+            dataGridViewOrders.Location = new Point(10, 9);
+            dataGridViewOrders.Margin = new Padding(3, 2, 3, 2);
             dataGridViewOrders.Name = "dataGridViewOrders";
             dataGridViewOrders.ReadOnly = true;
             dataGridViewOrders.RowHeadersWidth = 51;
             dataGridViewOrders.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
-            dataGridViewOrders.Size = new Size(600, 300);
+            dataGridViewOrders.Size = new Size(525, 225);
             dataGridViewOrders.TabIndex = 4;
             // 
             // buttonAdd
             // 
-            buttonAdd.Location = new Point(12, 332);
+            buttonAdd.Location = new Point(10, 249);
+            buttonAdd.Margin = new Padding(3, 2, 3, 2);
             buttonAdd.Name = "buttonAdd";
-            buttonAdd.Size = new Size(100, 30);
+            buttonAdd.Size = new Size(88, 22);
             buttonAdd.TabIndex = 5;
             buttonAdd.Text = "Добавить";
             buttonAdd.Click += buttonAdd_Click;
             // 
             // buttonUpdate
             // 
-            buttonUpdate.Location = new Point(132, 332);
+            buttonUpdate.Location = new Point(225, 249);
+            buttonUpdate.Margin = new Padding(3, 2, 3, 2);
             buttonUpdate.Name = "buttonUpdate";
-            buttonUpdate.Size = new Size(100, 30);
+            buttonUpdate.Size = new Size(88, 22);
             buttonUpdate.TabIndex = 6;
             buttonUpdate.Text = "Изменить";
             buttonUpdate.Click += buttonUpdate_Click;
             // 
             // buttonRemove
             // 
-            buttonRemove.Location = new Point(252, 332);
+            buttonRemove.Location = new Point(448, 249);
+            buttonRemove.Margin = new Padding(3, 2, 3, 2);
             buttonRemove.Name = "buttonRemove";
-            buttonRemove.Size = new Size(100, 30);
+            buttonRemove.Size = new Size(88, 22);
             buttonRemove.TabIndex = 7;
             buttonRemove.Text = "Удалить";
             buttonRemove.Click += buttonRemove_Click;
             // 
             // FOrders
             // 
-            AutoScaleDimensions = new SizeF(8F, 20F);
+            AutoScaleDimensions = new SizeF(7F, 15F);
             AutoScaleMode = AutoScaleMode.Font;
-            ClientSize = new Size(630, 412);
+            ClientSize = new Size(551, 309);
             Controls.Add(dataGridViewOrders);
             Controls.Add(buttonAdd);
             Controls.Add(buttonUpdate);
             Controls.Add(buttonRemove);
+            Margin = new Padding(3, 2, 3, 2);
             Name = "FOrders";
             Text = "FOrders";
+            Load += FOrders_Load;
             ((System.ComponentModel.ISupportInitialize)dataGridViewOrders).EndInit();
             ResumeLayout(false);
         }
diff --git a/ProjectLibrary/Forms/FOrders.cs b/ProjectLibrary/Forms/FOrders.cs
index f6f51e8..a43130f 100644
--- a/ProjectLibrary/Forms/FOrders.cs
+++ b/ProjectLibrary/Forms/FOrders.cs
@@ -1,6 +1,4 @@
-using ProjectLibrary.Entites;
-using ProjectLibrary.Repositories;
-using System.Windows.Forms;
+using ProjectLibrary.Repositories;
 using Unity;
 
 namespace ProjectLibrary.Forms
@@ -24,7 +22,6 @@ namespace ProjectLibrary.Forms
 
         private void buttonAdd_Click(object sender, EventArgs e)
         {
-
             try
             {
                 _container.Resolve<FOrder>().ShowDialog();
@@ -58,8 +55,8 @@ namespace ProjectLibrary.Forms
 
             try
             {
-                var form = _container.Resolve<FReader>();
-                form.ID = findId;
+                var form = _container.Resolve<FOrder>();
+                form.Id = findId;
                 form.ShowDialog();
                 LoadList();
             }
@@ -91,5 +88,17 @@ namespace ProjectLibrary.Forms
                 MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
+
+        private void FOrders_Load(object sender, EventArgs e)
+        {
+            try
+            {
+                LoadList();
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+        }
     }
 }
diff --git a/ProjectLibrary/Forms/FOrders.resx b/ProjectLibrary/Forms/FOrders.resx
index 8b2ff64..af32865 100644
--- a/ProjectLibrary/Forms/FOrders.resx
+++ b/ProjectLibrary/Forms/FOrders.resx
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema
+    Microsoft ResX Schema 
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-
+    
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/ProjectLibrary/Forms/FReader.cs b/ProjectLibrary/Forms/FReader.cs
index e93ba7a..b440943 100644
--- a/ProjectLibrary/Forms/FReader.cs
+++ b/ProjectLibrary/Forms/FReader.cs
@@ -7,7 +7,7 @@ namespace ProjectLibrary.Forms
 {
     public partial class FReader : Form
     {
-        private readonly IReaderRepository _readerRepository; // Интерфейс для работы с репозиторием
+        private readonly IReaderRepository _readerRepository;
         private int? _readerId;
 
         public int ID
@@ -16,7 +16,7 @@ namespace ProjectLibrary.Forms
             {
                 try
                 {
-                    var reader = _readerRepository.GetReaderById(value);
+                    var reader = _readerRepository.ReadReaderById(value);
 
                     if (reader == null)
                     {
@@ -60,10 +60,9 @@ namespace ProjectLibrary.Forms
                 }
                 else
                 {
-                    _readerRepository.AddReader(reader);
+                    _readerRepository.CreateReader(reader);
                 }
 
-                MessageBox.Show("Данные успешно сохранены!", "[ Success ]", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 Close();
             }
             catch (Exception ex)
diff --git a/ProjectLibrary/Forms/FTicket_Extension.Designer.cs b/ProjectLibrary/Forms/FTicket_Extension.Designer.cs
index 8357cea..cc3438c 100644
--- a/ProjectLibrary/Forms/FTicket_Extension.Designer.cs
+++ b/ProjectLibrary/Forms/FTicket_Extension.Designer.cs
@@ -3,9 +3,6 @@
     partial class FTicket_Extension
     {
         private System.ComponentModel.IContainer components = null;
-
-        private Label lblReaderID;
-        private TextBox txtReaderID;
         private Label lblLastUpdateDate;
         private DateTimePicker dtpLastUpdateDate;
         private Label lblNextUpdateDate;
@@ -24,39 +21,22 @@
 
         private void InitializeComponent()
         {
-            lblReaderID = new Label();
-            txtReaderID = new TextBox();
             lblLastUpdateDate = new Label();
             dtpLastUpdateDate = new DateTimePicker();
             lblNextUpdateDate = new Label();
             dtpNextUpdateDate = new DateTimePicker();
             btnSave = new Button();
             btnCancel = new Button();
+            labelId = new Label();
+            comboBoxId = new ComboBox();
             SuspendLayout();
             // 
-            // lblReaderID
-            // 
-            lblReaderID.AutoSize = true;
-            lblReaderID.Location = new Point(20, 20);
-            lblReaderID.Name = "lblReaderID";
-            lblReaderID.Size = new Size(92, 20);
-            lblReaderID.TabIndex = 0;
-            lblReaderID.Text = "ID читателя:";
-            // 
-            // txtReaderID
-            // 
-            txtReaderID.Location = new Point(140, 20);
-            txtReaderID.Name = "txtReaderID";
-            txtReaderID.ReadOnly = true;
-            txtReaderID.Size = new Size(200, 27);
-            txtReaderID.TabIndex = 1;
-            // 
             // lblLastUpdateDate
             // 
             lblLastUpdateDate.AutoSize = true;
             lblLastUpdateDate.Location = new Point(20, 64);
             lblLastUpdateDate.Name = "lblLastUpdateDate";
-            lblLastUpdateDate.Size = new Size(219, 20);
+            lblLastUpdateDate.Size = new Size(172, 15);
             lblLastUpdateDate.TabIndex = 4;
             lblLastUpdateDate.Text = "Дата последнего обновления:";
             // 
@@ -64,7 +44,7 @@
             // 
             dtpLastUpdateDate.Location = new Point(276, 59);
             dtpLastUpdateDate.Name = "dtpLastUpdateDate";
-            dtpLastUpdateDate.Size = new Size(200, 27);
+            dtpLastUpdateDate.Size = new Size(200, 23);
             dtpLastUpdateDate.TabIndex = 5;
             // 
             // lblNextUpdateDate
@@ -72,7 +52,7 @@
             lblNextUpdateDate.AutoSize = true;
             lblNextUpdateDate.Location = new Point(20, 104);
             lblNextUpdateDate.Name = "lblNextUpdateDate";
-            lblNextUpdateDate.Size = new Size(223, 20);
+            lblNextUpdateDate.Size = new Size(178, 15);
             lblNextUpdateDate.TabIndex = 6;
             lblNextUpdateDate.Text = "Дата следующего обновления:";
             // 
@@ -80,7 +60,7 @@
             // 
             dtpNextUpdateDate.Location = new Point(276, 99);
             dtpNextUpdateDate.Name = "dtpNextUpdateDate";
-            dtpNextUpdateDate.Size = new Size(200, 27);
+            dtpNextUpdateDate.Size = new Size(200, 23);
             dtpNextUpdateDate.TabIndex = 7;
             // 
             // btnSave
@@ -90,7 +70,7 @@
             btnSave.Size = new Size(100, 30);
             btnSave.TabIndex = 8;
             btnSave.Text = "Сохранить";
-            btnSave.Click += SaveBtn_Click;
+            btnSave.Click += btnSave_Click;
             // 
             // btnCancel
             // 
@@ -99,13 +79,29 @@
             btnCancel.Size = new Size(100, 30);
             btnCancel.TabIndex = 9;
             btnCancel.Text = "Отмена";
-            btnCancel.Click += DiscardBtn_Click;
+            btnCancel.Click += btnCancel_Click;
+            // 
+            // labelId
+            // 
+            labelId.AutoSize = true;
+            labelId.Location = new Point(20, 19);
+            labelId.Name = "labelId";
+            labelId.Size = new Size(17, 15);
+            labelId.TabIndex = 10;
+            labelId.Text = "id";
+            // 
+            // comboBoxId
+            // 
+            comboBoxId.Location = new Point(273, 16);
+            comboBoxId.Name = "comboBoxId";
+            comboBoxId.Size = new Size(203, 23);
+            comboBoxId.TabIndex = 11;
             // 
             // FTicket_Extension
             // 
-            ClientSize = new Size(797, 250);
-            Controls.Add(lblReaderID);
-            Controls.Add(txtReaderID);
+            ClientSize = new Size(573, 250);
+            Controls.Add(comboBoxId);
+            Controls.Add(labelId);
             Controls.Add(lblLastUpdateDate);
             Controls.Add(dtpLastUpdateDate);
             Controls.Add(lblNextUpdateDate);
@@ -117,5 +113,8 @@
             ResumeLayout(false);
             PerformLayout();
         }
+
+        private Label labelId;
+        private ComboBox comboBoxId;
     }
 }
diff --git a/ProjectLibrary/Forms/FTicket_Extension.cs b/ProjectLibrary/Forms/FTicket_Extension.cs
index 014220e..385ebab 100644
--- a/ProjectLibrary/Forms/FTicket_Extension.cs
+++ b/ProjectLibrary/Forms/FTicket_Extension.cs
@@ -1,8 +1,5 @@
-using System;
-using System.Windows.Forms;
-using ProjectLibrary.Entites;
-using ProjectLibrary.Entities;
-using ProjectLibrary.Repositories;
+using ProjectLibrary.Entites;
+using ProjectLibrary.Repositores;
 
 namespace ProjectLibrary.Forms
 {
@@ -11,79 +8,68 @@ namespace ProjectLibrary.Forms
         private readonly ITicketExtensionsRepository _ticketExtensionsRepository;
         private int? _extensionId;
 
-        public int ID
+        public int Id
         {
             set
             {
                 try
                 {
-                    var ticketExtension = _ticketExtensionsRepository.GetTicketExtensionById(value);
-
-                    if (ticketExtension == null)
+                    var ticket = _ticketExtensionsRepository.ReadTicketExtensionById(value);
+                    if (ticket == null)
                     {
-                        throw new InvalidOperationException($"Ticket extension with ID {value} not found.");
+                        throw new InvalidOperationException("Заказ не найден.");
                     }
-
-                    txtReaderID.Text = ticketExtension.ReaderID.ToString();
-                    dtpLastUpdateDate.Value = ticketExtension.LastUpdateDate;
-                    dtpNextUpdateDate.Value = ticketExtension.NextUpdateDate;
-
+                    comboBoxId.SelectedItem = ticket.ReaderID;
+                    dtpLastUpdateDate.Text = ticket.LastUpdateDate.ToString();
+                    dtpNextUpdateDate.Text = ticket.NextUpdateDate.ToString();
                     _extensionId = value;
                 }
                 catch (Exception ex)
                 {
-                    MessageBox.Show(ex.Message, "[ Error : wrong data ]", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                    MessageBox.Show(ex.Message, "Ошибка при загрузке данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 }
             }
         }
-
-        public FTicket_Extension(ITicketExtensionsRepository ticketExtensionsRepository)
+        public FTicket_Extension(ITicketExtensionsRepository ticketRepository)
         {
             InitializeComponent();
-            _ticketExtensionsRepository = ticketExtensionsRepository ?? throw new ArgumentNullException(nameof(ticketExtensionsRepository));
+            _ticketExtensionsRepository = ticketRepository ?? throw new ArgumentNullException(nameof(ticketRepository));
         }
 
-        private void SaveBtn_Click(object sender, EventArgs e)
+        private void btnSave_Click(object sender, EventArgs e)
         {
             try
             {
-                if (string.IsNullOrWhiteSpace(txtReaderID.Text))
+                if (string.IsNullOrWhiteSpace(dtpLastUpdateDate.Text) || string.IsNullOrWhiteSpace(dtpNextUpdateDate.Text) || comboBoxId.SelectedItem == null)
                 {
-                    throw new Exception("[ Error : blank spaces were left, not enough information ]");
+                    throw new Exception("Не все поля заполнены.");
                 }
 
-                var ticketExtension = CreateTicketExtension();
+                var ticket = TicketExtensions.CreateEntity(
+                    _extensionId ?? 0,
+                    DateTime.Parse(dtpLastUpdateDate.Text),
+                    DateTime.Parse(dtpNextUpdateDate.Text)
+                );
 
                 if (_extensionId.HasValue)
                 {
-                    _ticketExtensionsRepository.UpdateTicketExtension(ticketExtension);
+                    _ticketExtensionsRepository.UpdateTicketExtension(ticket);
                 }
                 else
                 {
-                    _ticketExtensionsRepository.AddTicketExtension(ticketExtension);
+                    _ticketExtensionsRepository.CreateTicketExtension(ticket);
                 }
-
-                MessageBox.Show("Данные успешно сохранены!", "[ Success ]", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 Close();
             }
             catch (Exception ex)
             {
-                MessageBox.Show(ex.Message, "[ Error : while saving ]", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                MessageBox.Show(ex.Message, "Ошибка при сохранении данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
 
-        private void DiscardBtn_Click(object sender, EventArgs e)
+        private void btnCancel_Click(object sender, EventArgs e)
         {
-            Close();
-        }
-
-        private TicketExtensions CreateTicketExtension()
-        {
-            return TicketExtensions.CreateEntity(
-                int.Parse(txtReaderID.Text),
-                dtpLastUpdateDate.Value,
-                dtpNextUpdateDate.Value
-            );
+            this.Close();
         }
     }
 }
diff --git a/ProjectLibrary/Forms/FTicket_Extension.resx b/ProjectLibrary/Forms/FTicket_Extension.resx
index 8b2ff64..af32865 100644
--- a/ProjectLibrary/Forms/FTicket_Extension.resx
+++ b/ProjectLibrary/Forms/FTicket_Extension.resx
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema
+    Microsoft ResX Schema 
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-
+    
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/ProjectLibrary/Forms/FTiclet_Extensions.Designer.cs b/ProjectLibrary/Forms/FTiclet_Extensions.Designer.cs
new file mode 100644
index 0000000..d20f538
--- /dev/null
+++ b/ProjectLibrary/Forms/FTiclet_Extensions.Designer.cs
@@ -0,0 +1,92 @@
+namespace ProjectLibrary.Forms
+{
+    partial class FTiclet_Extensions
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            dataGridView = new DataGridView();
+            buttonAdd = new Button();
+            buttonUpdate = new Button();
+            ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
+            SuspendLayout();
+            // 
+            // dataGridView
+            // 
+            dataGridView.AllowUserToAddRows = false;
+            dataGridView.AllowUserToDeleteRows = false;
+            dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridView.Location = new Point(12, 11);
+            dataGridView.Margin = new Padding(3, 2, 3, 2);
+            dataGridView.Name = "dataGridView";
+            dataGridView.ReadOnly = true;
+            dataGridView.RowHeadersWidth = 51;
+            dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
+            dataGridView.Size = new Size(525, 225);
+            dataGridView.TabIndex = 8;
+            // 
+            // buttonAdd
+            // 
+            buttonAdd.Location = new Point(12, 251);
+            buttonAdd.Margin = new Padding(3, 2, 3, 2);
+            buttonAdd.Name = "buttonAdd";
+            buttonAdd.Size = new Size(88, 22);
+            buttonAdd.TabIndex = 9;
+            buttonAdd.Text = "Добавить";
+            buttonAdd.Click += buttonAdd_Click;
+            // 
+            // buttonUpdate
+            // 
+            buttonUpdate.Location = new Point(227, 251);
+            buttonUpdate.Margin = new Padding(3, 2, 3, 2);
+            buttonUpdate.Name = "buttonUpdate";
+            buttonUpdate.Size = new Size(88, 22);
+            buttonUpdate.TabIndex = 10;
+            buttonUpdate.Text = "Изменить";
+            buttonUpdate.Click += buttonUpdate_Click;
+            // 
+            // FTiclet_Extensions
+            // 
+            AutoScaleDimensions = new SizeF(7F, 15F);
+            AutoScaleMode = AutoScaleMode.Font;
+            ClientSize = new Size(569, 293);
+            Controls.Add(dataGridView);
+            Controls.Add(buttonAdd);
+            Controls.Add(buttonUpdate);
+            Name = "FTiclet_Extensions";
+            Text = "FTiclet_Extensions";
+            Load += FTiclet_Extensions_Load;
+            ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
+            ResumeLayout(false);
+        }
+
+        #endregion
+
+        private DataGridView dataGridView;
+        private Button buttonAdd;
+        private Button buttonUpdate;
+    }
+}
\ No newline at end of file
diff --git a/ProjectLibrary/Forms/FTiclet_Extensions.cs b/ProjectLibrary/Forms/FTiclet_Extensions.cs
new file mode 100644
index 0000000..9a8f2ce
--- /dev/null
+++ b/ProjectLibrary/Forms/FTiclet_Extensions.cs
@@ -0,0 +1,79 @@
+using ProjectLibrary.Repositores;
+using ProjectLibrary.Repositories;
+using Unity;
+
+namespace ProjectLibrary.Forms
+{
+    public partial class FTiclet_Extensions : Form
+    {
+        private readonly IUnityContainer _container;
+        private readonly ITicketExtensionsRepository _ticketRepository;
+        public FTiclet_Extensions(IUnityContainer container, ITicketExtensionsRepository ticketRepository)
+        {
+            InitializeComponent();
+            _container = container ?? throw new ArgumentNullException(nameof(container));
+            _ticketRepository = ticketRepository ?? throw new ArgumentNullException(nameof(ticketRepository));
+        }
+
+        private void buttonAdd_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                _container.Resolve<FTicket_Extension>().ShowDialog();
+                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<FTicket_Extension>();
+                form.Id = findId;
+                form.ShowDialog();
+                LoadList();
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message, "Ошибка при изменении", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+        }
+
+        private void FTiclet_Extensions_Load(object sender, EventArgs e)
+        {
+            try
+            {
+                LoadList();
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+        }
+        private void LoadList()
+        {
+            dataGridView.DataSource = _ticketRepository.ReadTicketExtensions();
+        }
+        private bool TryGetIdentifierFromSelectedRow(out int id)
+        {
+            id = 0;
+            if (dataGridView.SelectedRows.Count < 1)
+            {
+                MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                return false;
+            }
+
+            id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+            return true;
+        }
+    }
+}
diff --git a/ProjectLibrary/Forms/FTiclet_Extensions.resx b/ProjectLibrary/Forms/FTiclet_Extensions.resx
new file mode 100644
index 0000000..af32865
--- /dev/null
+++ b/ProjectLibrary/Forms/FTiclet_Extensions.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!--
+    Microsoft ResX Schema 
+
+    Version 2.0
+
+    The primary goals of this format is to allow a simple XML format
+    that is mostly human readable. The generation and parsing of the
+    various data types are done through the TypeConverter classes
+    associated with the data types.
+
+    Example:
+
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+
+    There are any number of "resheader" rows that contain simple
+    name/value pairs.
+
+    Each data row contains a name, and value. The row also contains a
+    type or mimetype. Type corresponds to a .NET class that support
+    text/value conversion through the TypeConverter architecture.
+    Classes that don't support this are serialized and stored with the
+    mimetype set.
+
+    The mimetype is used for serialized objects, and tells the
+    ResXResourceReader how to depersist the object. This is currently not
+    extensible. For a given mimetype the value must be set accordingly:
+
+    Note - application/x-microsoft.net.object.binary.base64 is the format
+    that the ResXResourceWriter will generate, however the reader can
+    read any of the formats listed below.
+
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/ProjectLibrary/Program.cs b/ProjectLibrary/Program.cs
index 9a38a45..e0ded03 100644
--- a/ProjectLibrary/Program.cs
+++ b/ProjectLibrary/Program.cs
@@ -1,6 +1,7 @@
 using ProjectLibrary.Repositories.Implementations;
 using ProjectLibrary.Repositories;
 using Unity;
+using ProjectLibrary.Repositores;
 
 namespace ProjectLibrary
 {
@@ -28,10 +29,7 @@ namespace ProjectLibrary
             container.RegisterType<IReaderRepository, ReaderRepository>();
             container.RegisterType<IOrderRepository, OrderRepository>();
             container.RegisterType<ITicketExtensionsRepository, TicketExtensionsRepository>();
-            container.RegisterType<IBookOrderRepository, BookOrderRepository>();
             return container;
         }
-
-
     }
 }
\ No newline at end of file
diff --git a/ProjectLibrary/Repositores/IBookOrderRepository.cs b/ProjectLibrary/Repositores/IBookOrderRepository.cs
deleted file mode 100644
index f4d5284..0000000
--- a/ProjectLibrary/Repositores/IBookOrderRepository.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using ProjectLibrary.Entites;
-using ProjectLibrary.Entities;
-using System.Collections.Generic;
-
-namespace ProjectLibrary.Repositories
-{
-    public interface IBookOrderRepository
-    {
-        Book_Orders GetBookOrderByOrderId(int orderId); // Получить книгу по ID заказа
-        void AddBookOrder(Book_Orders bookOrder); // Добавить книгу к заказу
-        void UpdateBookOrder(Book_Orders bookOrder); // Обновить данные о книге в заказе
-        void DeleteBookOrder(int bookId, int orderId); // Удалить книгу из заказа
-        List<Book_Orders> ReadBookOrders(); // Получить все записи о книгах в заказах
-    }
-}
diff --git a/ProjectLibrary/Repositores/IBookRepository.cs b/ProjectLibrary/Repositores/IBookRepository.cs
index bdfb283..07ffa28 100644
--- a/ProjectLibrary/Repositores/IBookRepository.cs
+++ b/ProjectLibrary/Repositores/IBookRepository.cs
@@ -1,4 +1,4 @@
-namespace ProjectLibrary.Repositories
+namespace ProjectLibrary.Repositores
 {
     using ProjectLibrary.Entities;
 
diff --git a/ProjectLibrary/Repositores/IReaderRepository.cs b/ProjectLibrary/Repositores/IReaderRepository.cs
index 503ad12..b7050a6 100644
--- a/ProjectLibrary/Repositores/IReaderRepository.cs
+++ b/ProjectLibrary/Repositores/IReaderRepository.cs
@@ -5,10 +5,10 @@
 
     public interface IReaderRepository
     {
-        Reader GetReaderById(int id);
-        void AddReader(Reader reader);
+        Reader ReadReaderById(int id);
+        void CreateReader(Reader reader);
         void UpdateReader(Reader reader);
-        void DeleteReader(int id); // Метод для удаления
-        List<Reader> ReadReaders(); // Метод для чтения всех читателей
+        void DeleteReader(int id);
+        List<Reader> ReadReaders();
     }
 }
diff --git a/ProjectLibrary/Repositores/ITicketExtension.cs b/ProjectLibrary/Repositores/ITicketExtension.cs
new file mode 100644
index 0000000..e07e971
--- /dev/null
+++ b/ProjectLibrary/Repositores/ITicketExtension.cs
@@ -0,0 +1,11 @@
+using ProjectLibrary.Entites;
+
+namespace ProjectLibrary.Repositores;
+
+public interface ITicketExtensionsRepository
+{
+    TicketExtensions ReadTicketExtensionById(int id);
+    List<TicketExtensions> ReadTicketExtensions();
+    void CreateTicketExtension(TicketExtensions ticketExtension);
+    void UpdateTicketExtension(TicketExtensions ticketExtension);
+}
diff --git a/ProjectLibrary/Repositores/ITicketExtensionRepository.cs b/ProjectLibrary/Repositores/ITicketExtensionRepository.cs
deleted file mode 100644
index 510b1db..0000000
--- a/ProjectLibrary/Repositores/ITicketExtensionRepository.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-namespace ProjectLibrary.Repositories
-{
-    using ProjectLibrary.Entites;
-    using ProjectLibrary.Entities;
-
-    public interface ITicketExtensionsRepository
-    {
-        TicketExtensions GetTicketExtensionById(int id);
-        void AddTicketExtension(TicketExtensions ticketExtension);
-        void UpdateTicketExtension(TicketExtensions ticketExtension);
-    }
-
-}
diff --git a/ProjectLibrary/Repositores/Implementations/BookOrderRepository.cs b/ProjectLibrary/Repositores/Implementations/BookOrderRepository.cs
deleted file mode 100644
index 0a582f9..0000000
--- a/ProjectLibrary/Repositores/Implementations/BookOrderRepository.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-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<Book_Orders> ReadBookOrders()
-        {
-            return [];
-        }
-    }
-}
diff --git a/ProjectLibrary/Repositores/Implementations/BookRepository.cs b/ProjectLibrary/Repositores/Implementations/BookRepository.cs
index 99b78fb..7d3b3db 100644
--- a/ProjectLibrary/Repositores/Implementations/BookRepository.cs
+++ b/ProjectLibrary/Repositores/Implementations/BookRepository.cs
@@ -1,19 +1,21 @@
 using ProjectLibrary.Entities;
 using ProjectLibrary.Entities.Enums;
-using ProjectLibrary.Repositories;
-using System.Collections.Generic;
-using System.Linq;
+using ProjectLibrary.Repositores;
 
 namespace ProjectLibrary.Repositories.Implementations
 {
     public class BookRepository : IBookRepository
     {
-        
         public void CreateBook(Book book)
         {
             
         }
 
+        public void UpdateBook(Book book)
+        {
+
+        }
+
         public void DeleteBook(int id)
         {
            
@@ -29,10 +31,5 @@ namespace ProjectLibrary.Repositories.Implementations
         {
             return [];
         }
-
-        public void UpdateBook(Book book)
-        {
-           
-        }
     }
 }
diff --git a/ProjectLibrary/Repositores/Implementations/LibraryRepository.cs b/ProjectLibrary/Repositores/Implementations/LibraryRepository.cs
index fc02e54..4bfe06e 100644
--- a/ProjectLibrary/Repositores/Implementations/LibraryRepository.cs
+++ b/ProjectLibrary/Repositores/Implementations/LibraryRepository.cs
@@ -5,13 +5,16 @@ namespace ProjectLibrary.Repositories.Implementations
 {
     public class LibraryRepository : ILibraryRepository
     {
-        
-
         public void CreateLibrary(Library library)
         {
            
         }
 
+        public void UpdateLibrary(Library library)
+        {
+
+        }
+
         public void DeleteLibrary(int id)
         {
             
@@ -26,10 +29,5 @@ namespace ProjectLibrary.Repositories.Implementations
         {
             return [];
         }
-
-        public void UpdateLibrary(Library library)
-        {
-            
-        }
     }
 }
diff --git a/ProjectLibrary/Repositores/Implementations/OrderRepository.cs b/ProjectLibrary/Repositores/Implementations/OrderRepository.cs
index 65d13ab..f514ed1 100644
--- a/ProjectLibrary/Repositores/Implementations/OrderRepository.cs
+++ b/ProjectLibrary/Repositores/Implementations/OrderRepository.cs
@@ -1,18 +1,16 @@
 using ProjectLibrary.Entites;
-using ProjectLibrary.Entities;
-using ProjectLibrary.Repositories;
-using System.Collections.Generic;
-using System.Linq;
 
 namespace ProjectLibrary.Repositories.Implementations
 {
     public class OrderRepository : IOrderRepository
     {
-        
-
         public void CreateOrder(Orders order)
         {
             
+        }
+        public void UpdateOrder(Orders order)
+        {
+
         }
 
         public void DeleteOrder(int id)
@@ -29,10 +27,5 @@ namespace ProjectLibrary.Repositories.Implementations
         {
             return [] ;
         }
-
-        public void UpdateOrder(Orders order)
-        {
-            
-        }
     }
 }
diff --git a/ProjectLibrary/Repositores/Implementations/ReaderRepository.cs b/ProjectLibrary/Repositores/Implementations/ReaderRepository.cs
index b1bd7e6..ce70eda 100644
--- a/ProjectLibrary/Repositores/Implementations/ReaderRepository.cs
+++ b/ProjectLibrary/Repositores/Implementations/ReaderRepository.cs
@@ -1,19 +1,10 @@
-using System.Collections.Generic;
-using System.Linq;
-using ProjectLibrary.Entities;
+using ProjectLibrary.Entities;
 
 namespace ProjectLibrary.Repositories
 {
     public class ReaderRepository : IReaderRepository
     {
-        
-
-        public Reader GetReaderById(int id)
-        {
-            return Reader.CreateEntity(id, "", 0);
-        }
-
-        public void AddReader(Reader reader)
+        public void CreateReader(Reader reader)
         {
            
         }
@@ -27,6 +18,10 @@ namespace ProjectLibrary.Repositories
         {
             
         }
+        public Reader ReadReaderById(int id)
+        {
+            return Reader.CreateEntity(id, "", 0);
+        }
 
         public List<Reader> ReadReaders()
         {
diff --git a/ProjectLibrary/Repositores/Implementations/TicketExtensionsRepository.cs b/ProjectLibrary/Repositores/Implementations/TicketExtensionsRepository.cs
index 860739d..1632764 100644
--- a/ProjectLibrary/Repositores/Implementations/TicketExtensionsRepository.cs
+++ b/ProjectLibrary/Repositores/Implementations/TicketExtensionsRepository.cs
@@ -1,16 +1,9 @@
 using ProjectLibrary.Entites;
-using ProjectLibrary.Repositories;
+using ProjectLibrary.Repositores;
 
 public class TicketExtensionsRepository : ITicketExtensionsRepository
 {
-   
-
-    public TicketExtensions GetTicketExtensionById(int id)
-    {
-        return TicketExtensions.CreateEntity(0, DateTime.Now, DateTime.Now);
-    }
-
-    public void AddTicketExtension(TicketExtensions ticketExtension)
+    public void CreateTicketExtension(TicketExtensions ticketExtension)
     {
         
     }
@@ -19,4 +12,14 @@ public class TicketExtensionsRepository : ITicketExtensionsRepository
     {
        
     }
+
+    public TicketExtensions ReadTicketExtensionById(int id)
+    {
+        return TicketExtensions.CreateEntity(0, DateTime.Now, DateTime.Now);
+    }
+
+    public List<TicketExtensions> ReadTicketExtensions()
+    {
+        return [];
+    }
 }