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


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;
            
            // Создаем метку и поле для ФИО
            Label меткаФио = new Label();
            меткаФио.Text = "ФИО клиента:";
            меткаФио.Location = new System.Drawing.Point(20, y + 3);
            меткаФио.Width = 120;
            this.Controls.Add(меткаФио);
            
            полеФио = new TextBox();
            полеФио.Location = new System.Drawing.Point(150, y);
            полеФио.Width = 250;
            this.Controls.Add(полеФио);
            
            y += 45;
            
            // Создаем метку и поле для телефона
            Label меткаТелефон = new Label();
            меткаТелефон.Text = "Телефон:";
            меткаТелефон.Location = new System.Drawing.Point(20, y + 3);
            меткаТелефон.Width = 120;
            this.Controls.Add(меткаТелефон);
            
            полеТелефон = new TextBox();
            полеТелефон.Location = new System.Drawing.Point(150, y);
            полеТелефон.Width = 250;
            this.Controls.Add(полеТелефон);
            
            y += 45;
            
            // Создаем метку и поле для марки
            Label меткаМарка = new Label();
            меткаМарка.Text = "Желаемая марка:";
            меткаМарка.Location = new System.Drawing.Point(20, y + 3);
            меткаМарка.Width = 120;
            this.Controls.Add(меткаМарка);
            
            полеМарка = new TextBox();
            полеМарка.Location = new System.Drawing.Point(150, y);
            полеМарка.Width = 250;
            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 += new EventHandler(КнопкаОтправить_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();
            
            // Проверяем, есть ли авто в наличии
            bool естьВНаличии = база.ЕстьЛиАвтомобильВНаличии(желаемаяМарка);
            if (естьВНаличии)
            {
                MessageBox.Show("Автомобиль марки " + желаемаяМарка + " уже есть в наличии!\nКлиент может оформить покупку.", 
                    "Автомобиль найден", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            
            // Ищем клиента по телефону
            Клиент клиент = база.НайтиКлиентаПоТелефону(полеТелефон.Text);
            
            // Если клиент не найден - создаём нового
            if (клиент == null)
            {
                клиент = new Клиент();
                клиент.Фио = полеФио.Text.Trim();
                клиент.Телефон = полеТелефон.Text.Trim();
                база.ДобавитьКлиента(клиент);
            }
            
            // Создаём заявку
            Заявка заявка = new Заявка();
            заявка.ИдКлиента = клиент.Ид;
            заявка.ЖелаемаяМарка = желаемаяМарка;
            заявка.Статус = "открыта";
            база.ДобавитьЗаявку(заявка);
            
            // Показываем сообщение об успехе
            string сообщение = "Заявка принята!\nКлиент: " + клиент.Фио + "\nЖелаемая марка: " + желаемаяМарка + "\n\nКогда авто появится - вы получите оповещение.";
            MessageBox.Show(сообщение, "Заявка оформлена", MessageBoxButtons.OK, MessageBoxIcon.Information);
            
            DialogResult = DialogResult.OK;
            Close();
        }
    }
}