diff --git a/project/ProjectTourAgency/Forms/FormClient.Designer.cs b/project/ProjectTourAgency/Forms/FormClient.Designer.cs new file mode 100644 index 0000000..627f561 --- /dev/null +++ b/project/ProjectTourAgency/Forms/FormClient.Designer.cs @@ -0,0 +1,166 @@ +namespace ProjectTourAgency.Forms +{ + partial class FormClient + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + labelName = new Label(); + textBoxName = new TextBox(); + labelBirthDate = new Label(); + textBoxNumber = new TextBox(); + labelNumber = new Label(); + dateTimePickerBirth = new DateTimePicker(); + labelSocialStatus = new Label(); + buttonSave = new Button(); + buttonCancel = new Button(); + numericUpDownSocialStatus = new NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)numericUpDownSocialStatus).BeginInit(); + SuspendLayout(); + // + // labelName + // + labelName.AutoSize = true; + labelName.Location = new Point(12, 9); + labelName.Name = "labelName"; + labelName.Size = new Size(75, 15); + labelName.TabIndex = 0; + labelName.Text = "Полное имя"; + // + // textBoxName + // + textBoxName.Location = new Point(156, 6); + textBoxName.Name = "textBoxName"; + textBoxName.Size = new Size(100, 23); + textBoxName.TabIndex = 1; + // + // labelBirthDate + // + labelBirthDate.AutoSize = true; + labelBirthDate.Location = new Point(12, 64); + labelBirthDate.Name = "labelBirthDate"; + labelBirthDate.Size = new Size(90, 15); + labelBirthDate.TabIndex = 2; + labelBirthDate.Text = "Дата рождения"; + // + // textBoxNumber + // + textBoxNumber.Location = new Point(156, 116); + textBoxNumber.Name = "textBoxNumber"; + textBoxNumber.Size = new Size(100, 23); + textBoxNumber.TabIndex = 5; + textBoxNumber.Text = "+7"; + // + // labelNumber + // + labelNumber.AutoSize = true; + labelNumber.Location = new Point(12, 119); + labelNumber.Name = "labelNumber"; + labelNumber.Size = new Size(101, 15); + labelNumber.TabIndex = 4; + labelNumber.Text = "Номер телефона"; + // + // dateTimePickerBirth + // + dateTimePickerBirth.Location = new Point(156, 58); + dateTimePickerBirth.Name = "dateTimePickerBirth"; + dateTimePickerBirth.Size = new Size(200, 23); + dateTimePickerBirth.TabIndex = 6; + // + // labelSocialStatus + // + labelSocialStatus.AutoSize = true; + labelSocialStatus.Location = new Point(12, 187); + labelSocialStatus.Name = "labelSocialStatus"; + labelSocialStatus.Size = new Size(131, 15); + labelSocialStatus.TabIndex = 7; + labelSocialStatus.Text = "Основания для скидки"; + // + // buttonSave + // + buttonSave.Location = new Point(38, 272); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(75, 23); + buttonSave.TabIndex = 9; + buttonSave.Text = "Сохранить"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += buttonSave_Click; + // + // buttonCancel + // + buttonCancel.Location = new Point(201, 272); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(75, 23); + buttonCancel.TabIndex = 10; + buttonCancel.Text = "Отменить"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += buttonCancel_Click; + // + // numericUpDownSocialStatus + // + numericUpDownSocialStatus.Location = new Point(156, 187); + numericUpDownSocialStatus.Maximum = new decimal(new int[] { 3, 0, 0, 0 }); + numericUpDownSocialStatus.Name = "numericUpDownSocialStatus"; + numericUpDownSocialStatus.Size = new Size(120, 23); + numericUpDownSocialStatus.TabIndex = 11; + // + // FormClients + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(369, 314); + Controls.Add(numericUpDownSocialStatus); + Controls.Add(buttonCancel); + Controls.Add(buttonSave); + Controls.Add(labelSocialStatus); + Controls.Add(dateTimePickerBirth); + Controls.Add(textBoxNumber); + Controls.Add(labelNumber); + Controls.Add(labelBirthDate); + Controls.Add(textBoxName); + Controls.Add(labelName); + Name = "FormClients"; + StartPosition = FormStartPosition.CenterScreen; + Text = "Клиенты"; + ((System.ComponentModel.ISupportInitialize)numericUpDownSocialStatus).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Label labelName; + private TextBox textBoxName; + private Label labelBirthDate; + private TextBox textBoxNumber; + private Label labelNumber; + private DateTimePicker dateTimePickerBirth; + private Label labelSocialStatus; + private Button buttonSave; + private Button buttonCancel; + private NumericUpDown numericUpDownSocialStatus; + } +} \ No newline at end of file diff --git a/project/ProjectTourAgency/Forms/FormClient.cs b/project/ProjectTourAgency/Forms/FormClient.cs new file mode 100644 index 0000000..e64657d --- /dev/null +++ b/project/ProjectTourAgency/Forms/FormClient.cs @@ -0,0 +1,84 @@ +using ProjectTourAgency.Enities; +using ProjectTourAgency.Repositories; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace ProjectTourAgency.Forms; + +public partial class FormClient : Form +{ + private readonly IClientRepository _clientRepository; + + private int? _clientId; + + public int Id + { + set + { + try + { + var client = _clientRepository.ReadClientById(value); + if (client == null) + { + throw new InvalidDataException(nameof(client)); + } + textBoxName.Text = client.FullName; + textBoxNumber.Text = client.PhoneNumber; + numericUpDownSocialStatus.Value = (decimal)client.ClientSocialStatus; + dateTimePickerBirth.Value = client.BirthDate; + + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при получении данных", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + } + public FormClient(IClientRepository clientRepository) + { + InitializeComponent(); + _clientRepository = clientRepository ?? + throw new ArgumentNullException(nameof(clientRepository)); + } + + private void buttonSave_Click(object sender, EventArgs e) + { + try + { + if(string.IsNullOrWhiteSpace(textBoxName.Text) || + string.IsNullOrWhiteSpace(textBoxNumber.Text)) + { + throw new Exception("Имеются незаполненные поля"); + } + + if(_clientId.HasValue) + { + _clientRepository.UpdateClient(CreateClient(_clientId.Value)); + } + else + { + _clientRepository.CreateClient(CreateClient(0)); + } + Close(); + } + catch(Exception ex) + { + MessageBox.Show(ex.Message,"Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void buttonCancel_Click(object sender, EventArgs e) => Close(); + + private Client CreateClient(int id) => Client.CreateEntity(id, textBoxName.Text, + dateTimePickerBirth.Value, textBoxNumber.Text, + (Enities.Enums.ClientSocialStatus)numericUpDownSocialStatus.Value); +} diff --git a/project/ProjectTourAgency/Forms/FormClient.resx b/project/ProjectTourAgency/Forms/FormClient.resx new file mode 100644 index 0000000..af32865 --- /dev/null +++ b/project/ProjectTourAgency/Forms/FormClient.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/project/ProjectTourAgency/Forms/FormClients.Designer.cs b/project/ProjectTourAgency/Forms/FormClients.Designer.cs index 28faf41..cf905fa 100644 --- a/project/ProjectTourAgency/Forms/FormClients.Designer.cs +++ b/project/ProjectTourAgency/Forms/FormClients.Designer.cs @@ -28,139 +28,99 @@ /// private void InitializeComponent() { - labelName = new Label(); - textBoxName = new TextBox(); - labelBirthDate = new Label(); - textBoxNumber = new TextBox(); - labelNumber = new Label(); - dateTimePickerBirth = new DateTimePicker(); - labelSocialStatus = new Label(); - buttonSave = new Button(); - buttonCancel = new Button(); - numericUpDownSocialStatus = new NumericUpDown(); - ((System.ComponentModel.ISupportInitialize)numericUpDownSocialStatus).BeginInit(); + panel1 = new Panel(); + buttonDelete = new Button(); + buttonUpdate = new Button(); + buttonAdd = new Button(); + dataGridViewData = new DataGridView(); + panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewData).BeginInit(); SuspendLayout(); // - // labelName + // panel1 // - labelName.AutoSize = true; - labelName.Location = new Point(12, 9); - labelName.Name = "labelName"; - labelName.Size = new Size(75, 15); - labelName.TabIndex = 0; - labelName.Text = "Полное имя"; + panel1.Controls.Add(buttonDelete); + panel1.Controls.Add(buttonUpdate); + panel1.Controls.Add(buttonAdd); + panel1.Dock = DockStyle.Right; + panel1.Location = new Point(778, 0); + panel1.Name = "panel1"; + panel1.Size = new Size(149, 378); + panel1.TabIndex = 0; // - // textBoxName + // buttonDelete // - textBoxName.Location = new Point(156, 6); - textBoxName.Name = "textBoxName"; - textBoxName.Size = new Size(100, 23); - textBoxName.TabIndex = 1; + buttonDelete.BackgroundImage = Properties.Resources.free_icon_delete_3807871; + buttonDelete.BackgroundImageLayout = ImageLayout.Stretch; + buttonDelete.Location = new Point(43, 276); + buttonDelete.Name = "buttonDelete"; + buttonDelete.Size = new Size(61, 59); + buttonDelete.TabIndex = 3; + buttonDelete.UseVisualStyleBackColor = true; + buttonDelete.Click += buttonDelete_Click; // - // labelBirthDate + // buttonUpdate // - labelBirthDate.AutoSize = true; - labelBirthDate.Location = new Point(12, 64); - labelBirthDate.Name = "labelBirthDate"; - labelBirthDate.Size = new Size(90, 15); - labelBirthDate.TabIndex = 2; - labelBirthDate.Text = "Дата рождения"; + buttonUpdate.BackgroundImage = Properties.Resources.free_icon_edit_8679935; + buttonUpdate.BackgroundImageLayout = ImageLayout.Stretch; + buttonUpdate.Location = new Point(43, 142); + buttonUpdate.Name = "buttonUpdate"; + buttonUpdate.Size = new Size(61, 59); + buttonUpdate.TabIndex = 2; + buttonUpdate.UseVisualStyleBackColor = true; + buttonUpdate.Click += buttonUpdate_Click; // - // textBoxNumber + // buttonAdd // - textBoxNumber.Location = new Point(156, 116); - textBoxNumber.Name = "textBoxNumber"; - textBoxNumber.Size = new Size(100, 23); - textBoxNumber.TabIndex = 5; - textBoxNumber.Text = "+7"; + buttonAdd.BackgroundImage = Properties.Resources.free_icon_add_button_5974633; + buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; + buttonAdd.Location = new Point(43, 25); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(61, 59); + buttonAdd.TabIndex = 1; + buttonAdd.UseVisualStyleBackColor = true; + buttonAdd.Click += buttonAdd_Click; // - // labelNumber + // dataGridViewData // - labelNumber.AutoSize = true; - labelNumber.Location = new Point(12, 119); - labelNumber.Name = "labelNumber"; - labelNumber.Size = new Size(101, 15); - labelNumber.TabIndex = 4; - labelNumber.Text = "Номер телефона"; - // - // dateTimePickerBirth - // - dateTimePickerBirth.Location = new Point(156, 58); - dateTimePickerBirth.Name = "dateTimePickerBirth"; - dateTimePickerBirth.Size = new Size(200, 23); - dateTimePickerBirth.TabIndex = 6; - // - // labelSocialStatus - // - labelSocialStatus.AutoSize = true; - labelSocialStatus.Location = new Point(12, 187); - labelSocialStatus.Name = "labelSocialStatus"; - labelSocialStatus.Size = new Size(131, 15); - labelSocialStatus.TabIndex = 7; - labelSocialStatus.Text = "Основания для скидки"; - // - // buttonSave - // - buttonSave.Location = new Point(38, 272); - buttonSave.Name = "buttonSave"; - buttonSave.Size = new Size(75, 23); - buttonSave.TabIndex = 9; - buttonSave.Text = "Сохранить"; - buttonSave.UseVisualStyleBackColor = true; - buttonSave.Click += buttonSave_Click; - // - // buttonCancel - // - buttonCancel.Location = new Point(201, 272); - buttonCancel.Name = "buttonCancel"; - buttonCancel.Size = new Size(75, 23); - buttonCancel.TabIndex = 10; - buttonCancel.Text = "Отменить"; - buttonCancel.UseVisualStyleBackColor = true; - buttonCancel.Click += buttonCancel_Click; - // - // numericUpDownSocialStatus - // - numericUpDownSocialStatus.Location = new Point(156, 187); - numericUpDownSocialStatus.Maximum = new decimal(new int[] { 3, 0, 0, 0 }); - numericUpDownSocialStatus.Name = "numericUpDownSocialStatus"; - numericUpDownSocialStatus.Size = new Size(120, 23); - numericUpDownSocialStatus.TabIndex = 11; + dataGridViewData.AllowUserToAddRows = false; + dataGridViewData.AllowUserToDeleteRows = false; + dataGridViewData.AllowUserToResizeColumns = false; + dataGridViewData.AllowUserToResizeRows = false; + dataGridViewData.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewData.Dock = DockStyle.Fill; + dataGridViewData.Location = new Point(0, 0); + dataGridViewData.MultiSelect = false; + dataGridViewData.Name = "dataGridViewData"; + dataGridViewData.ReadOnly = true; + dataGridViewData.RowHeadersVisible = false; + dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewData.Size = new Size(778, 378); + dataGridViewData.TabIndex = 1; // // FormClients // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(369, 314); - Controls.Add(numericUpDownSocialStatus); - Controls.Add(buttonCancel); - Controls.Add(buttonSave); - Controls.Add(labelSocialStatus); - Controls.Add(dateTimePickerBirth); - Controls.Add(textBoxNumber); - Controls.Add(labelNumber); - Controls.Add(labelBirthDate); - Controls.Add(textBoxName); - Controls.Add(labelName); + ClientSize = new Size(927, 378); + Controls.Add(dataGridViewData); + Controls.Add(panel1); Name = "FormClients"; - StartPosition = FormStartPosition.CenterScreen; + StartPosition = FormStartPosition.CenterParent; Text = "Клиенты"; - ((System.ComponentModel.ISupportInitialize)numericUpDownSocialStatus).EndInit(); + Load += FormClients_Load; + panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewData).EndInit(); ResumeLayout(false); - PerformLayout(); } #endregion - private Label labelName; - private TextBox textBoxName; - private Label labelBirthDate; - private TextBox textBoxNumber; - private Label labelNumber; - private DateTimePicker dateTimePickerBirth; - private Label labelSocialStatus; - private Button buttonSave; - private Button buttonCancel; - private NumericUpDown numericUpDownSocialStatus; + private Panel panel1; + private Button buttonDelete; + private Button buttonUpdate; + private Button buttonAdd; + private DataGridView dataGridViewData; } } \ No newline at end of file diff --git a/project/ProjectTourAgency/Forms/FormClients.cs b/project/ProjectTourAgency/Forms/FormClients.cs index 44ec741..109c5e2 100644 --- a/project/ProjectTourAgency/Forms/FormClients.cs +++ b/project/ProjectTourAgency/Forms/FormClients.cs @@ -1,5 +1,4 @@ -using ProjectTourAgency.Enities; -using ProjectTourAgency.Repositories; +using ProjectTourAgency.Repositories; using System; using System.Collections.Generic; using System.ComponentModel; @@ -9,76 +8,103 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using Unity; -namespace ProjectTourAgency.Forms; - -public partial class FormClients : Form +namespace ProjectTourAgency.Forms { - private readonly IClientRepository _clientRepository; - - private int? _clientId; - - public int Id + public partial class FormClients : Form { - set + private readonly IUnityContainer _container; + + private readonly IClientRepository _clientRepository; + + public FormClients(IClientRepository clientRepository, IUnityContainer container) + { + InitializeComponent(); + _container = container ?? throw new ArgumentNullException(nameof(container)); + _clientRepository = clientRepository ?? throw new ArgumentNullException(nameof(_clientRepository)); + } + + private void FormClients_Load(object sender, EventArgs e) { try { - var client = _clientRepository.ReadClientById(value); - if (client == null) - { - throw new InvalidDataException(nameof(client)); - } - textBoxName.Text = client.FullName; - textBoxNumber.Text = client.PhoneNumber; - numericUpDownSocialStatus.Value = (decimal)client.ClientSocialStatus; - dateTimePickerBirth.Value = client.BirthDate; + LoadList(); + } + catch(Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + private void buttonAdd_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); } catch (Exception ex) { - MessageBox.Show(ex.Message, "Ошибка при получении данных", - MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show(ex.Message, "Ошибка рот добавлении", MessageBoxButtons.OK,MessageBoxIcon.Error); + } + } + + private void buttonUpdate_Click(object sender, EventArgs e) + { + if(!TryGetIdentifierFromSelectedRow(out var findId)) + { return; } - } - } - public FormClients(IClientRepository clientRepository) - { - InitializeComponent(); - _clientRepository = clientRepository ?? - throw new ArgumentNullException(nameof(clientRepository)); - } + try + { + var form = _container.Resolve(); + form.Id = findId; + form.ShowDialog(); + LoadList(); - private void buttonSave_Click(object sender, EventArgs e) - { - try + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при изменении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void buttonDelete_Click(object sender, EventArgs e) { - if(string.IsNullOrWhiteSpace(textBoxName.Text) || - string.IsNullOrWhiteSpace(textBoxNumber.Text)) + if(!TryGetIdentifierFromSelectedRow(out var findId)) { - throw new Exception("Имеются незаполненные поля"); + return; } - if(_clientId.HasValue) - { - _clientRepository.UpdateClient(CreateClient(_clientId.Value)); + if(MessageBox.Show("Удалить запись?", "Удаление", MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; } - else + + try { - _clientRepository.CreateClient(CreateClient(0)); + _clientRepository.DeleteClient(findId); + LoadList(); + } + catch(Exception ex) + { + MessageBox.Show(ex.Message,"Ошибка при удалении", MessageBoxButtons.OK,MessageBoxIcon.Error); } - Close(); } - catch(Exception ex) + + private void LoadList() => dataGridViewData.DataSource = _clientRepository.ReadClients(); + + private bool TryGetIdentifierFromSelectedRow(out int id) { - MessageBox.Show(ex.Message,"Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); + id = 0; + if(dataGridViewData.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + id = Convert.ToInt32(dataGridViewData.SelectedRows[0].Cells["ID"].Value); + return true; } } - - private void buttonCancel_Click(object sender, EventArgs e) => Close(); - - private Client CreateClient(int id) => Client.CreateEntity(id, textBoxName.Text, - dateTimePickerBirth.Value, textBoxNumber.Text, - (Enities.Enums.ClientSocialStatus)numericUpDownSocialStatus.Value); } diff --git a/project/ProjectTourAgency/Properties/Resources.Designer.cs b/project/ProjectTourAgency/Properties/Resources.Designer.cs index 9c4d6ec..80fd14f 100644 --- a/project/ProjectTourAgency/Properties/Resources.Designer.cs +++ b/project/ProjectTourAgency/Properties/Resources.Designer.cs @@ -60,6 +60,36 @@ namespace ProjectTourAgency.Properties { } } + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap free_icon_add_button_5974633 { + get { + object obj = ResourceManager.GetObject("free-icon-add-button-5974633", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap free_icon_delete_3807871 { + get { + object obj = ResourceManager.GetObject("free-icon-delete-3807871", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap free_icon_edit_8679935 { + get { + object obj = ResourceManager.GetObject("free-icon-edit-8679935", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Поиск локализованного ресурса типа System.Drawing.Bitmap. /// diff --git a/project/ProjectTourAgency/Properties/Resources.resx b/project/ProjectTourAgency/Properties/Resources.resx index d6cee73..639146d 100644 --- a/project/ProjectTourAgency/Properties/Resources.resx +++ b/project/ProjectTourAgency/Properties/Resources.resx @@ -118,10 +118,19 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\free-icon-edit-8679935.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Снимок экрана 2024-11-08 213926.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\free-icon-add-button-5974633.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Снимок экрана 2024-11-08 2139261.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\free-icon-delete-3807871.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/project/ProjectTourAgency/Resources/free-icon-add-button-5974633.png b/project/ProjectTourAgency/Resources/free-icon-add-button-5974633.png new file mode 100644 index 0000000..8ea3150 Binary files /dev/null and b/project/ProjectTourAgency/Resources/free-icon-add-button-5974633.png differ diff --git a/project/ProjectTourAgency/Resources/free-icon-delete-3807871.png b/project/ProjectTourAgency/Resources/free-icon-delete-3807871.png new file mode 100644 index 0000000..f575bf5 Binary files /dev/null and b/project/ProjectTourAgency/Resources/free-icon-delete-3807871.png differ diff --git a/project/ProjectTourAgency/Resources/free-icon-edit-8679935.png b/project/ProjectTourAgency/Resources/free-icon-edit-8679935.png new file mode 100644 index 0000000..26b2fa7 Binary files /dev/null and b/project/ProjectTourAgency/Resources/free-icon-edit-8679935.png differ