Загрузка данных


using System;
using System.Windows.Forms;
using CarCatalog.Данные;
using CarCatalog.Модели;

namespace CarCatalog
{
    public class ФормаЗаявки : Form
    {
        private ХранилищеДанных база;
        private TextBox полеФио;
        private TextBox полеТелефон;
        private TextBox полеМарка;
        private Button кнопкаОтправить;

        public ФормаЗаявки(ХранилищеДанных базаДанных)
        {
            база = базаДанных;
            
            this.Text = "Оформление заявки клиента";
            this.Size = new System.Drawing.Size(450, 320);
            this.StartPosition = FormStartPosition.CenterParent;
            this.FormBorderStyle = FormBorderStyle.FixedDialog;
            
            int y = 20;
            
            полеФио = new TextBox() { Location = new System.Drawing.Point(150, y), Width = 250 };
            this.Controls.Add(new Label() { Text = "ФИО клиента:", Location = new System.Drawing.Point(20, y + 3), Width = 120 });
            this.Controls.Add(полеФио);
            
            y += 45;
            полеТелефон = new TextBox() { Location = new System.Drawing.Point(150, y), Width = 250 };
            this.Controls.Add(new Label() { Text = "Телефон:", Location = new System.Drawing.Point(20, y + 3), Width = 120 });
            this.Controls.Add(полеТелефон);
            
            y += 45;
            полеМарка = new TextBox() { Location = new System.Drawing.Point(150, y), Width = 250 };
            this.Controls.Add(new Label() { Text = "Желаемая марка:", Location = new System.Drawing.Point(20, y + 3), Width = 120 });
            this.Controls.Add(полеМарка);
            
            y += 60;
            кнопкаОтправить = new Button() { Location = new System.Drawing.Point(150, y), Text = "Отправить заявку", Width = 200, Height = 40, BackColor = System.Drawing.Color.LightBlue };
            кнопкаОтправить.Click += КнопкаОтправить_Click;
            this.Controls.Add(кнопкаОтправить);
        }

        private void КнопкаОтправить_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(полеФио.Text))
            {
                MessageBox.Show("Введите ФИО клиента!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            
            if (string.IsNullOrWhiteSpace(полеМарка.Text))
            {
                MessageBox.Show("Введите желаемую марку!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            
            string желаемаяМарка = полеМарка.Text.Trim();
            
            // Проверяем, есть ли авто в наличии
            if (база.ЕстьЛиАвтомобильВНаличии(желаемаяМарка))
            {
                MessageBox.Show($"Автомобиль марки {желаемаяМарка} уже есть в наличии!\nКлиент может оформить покупку.", 
                    "Автомобиль найден", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            
            // Ищем или создаём клиента
            Клиент клиент = база.НайтиКлиентаПоТелефону(полеТелефон.Text);
            
            if (клиент == null)
            {
                клиент = new Клиент();
                клиент.Фио = полеФио.Text.Trim();
                клиент.Телефон = полеТелефон.Text.Trim();
                база.ДобавитьКлиента(клиент);
            }
            
            // Создаём заявку
            Заявка заявка = new Заявка();
            заявка.ИдКлиента = клиент.Ид;
            заявка.ЖелаемаяМарка = желаемаяМарка;
            заявка.Статус = "открыта";
            база.ДобавитьЗаявку(заявка);
            
            MessageBox.Show($"Заявка принята!\nКлиент: {клиент.Фио}\nЖелаемая марка: {желаемаяМарка}\n\nКогда авто появится - вы получите оповещение.", 
                "Заявка оформлена", MessageBoxButtons.OK, MessageBoxIcon.Information);
            
            DialogResult = DialogResult.OK;
            Close();
        }
    }
}