Загрузка данных
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();
}
}
}