130 lines
4.6 KiB
C#
130 lines
4.6 KiB
C#
|
using Contracts.BindlingModels;
|
|||
|
using Contracts.BusinessLogicContracts;
|
|||
|
using Contracts.SearchModels;
|
|||
|
using ControlsLibraryNet60.Input;
|
|||
|
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 Forms
|
|||
|
{
|
|||
|
public partial class DeliveryForm : Form
|
|||
|
{
|
|||
|
private int? _id;
|
|||
|
private readonly IDeliveryLogic _dLogic;
|
|||
|
private readonly IDeliveryTypeLogic _dtLogic;
|
|||
|
private bool isEdited;
|
|||
|
public DeliveryForm(IDeliveryLogic dLogic, IDeliveryTypeLogic dtLogic, int? id = null)
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
_id = id;
|
|||
|
_dLogic = dLogic;
|
|||
|
_dtLogic = dtLogic;
|
|||
|
isEdited = false;
|
|||
|
LoadData();
|
|||
|
}
|
|||
|
|
|||
|
private void LoadData()
|
|||
|
{
|
|||
|
var list = _dtLogic.ReadList(null);
|
|||
|
if (list != null)
|
|||
|
{
|
|||
|
foreach (var item in list)
|
|||
|
{
|
|||
|
comboBoxType.Items.Add(item.Name);
|
|||
|
}
|
|||
|
}
|
|||
|
if (_id.HasValue)
|
|||
|
{
|
|||
|
var view = _dLogic.ReadElement(new DeliverySearchModel
|
|||
|
{
|
|||
|
Id = _id.Value,
|
|||
|
});
|
|||
|
textBoxWishes.Text = view.Wishes;
|
|||
|
textBoxFCs.Text = view.FCs;
|
|||
|
if (view.DeliveryDate != "Даты доставки нет")
|
|||
|
{
|
|||
|
inputComponentDate.Value = Convert.ToDateTime(view.DeliveryDate);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
inputComponentDate.Value = null;
|
|||
|
}
|
|||
|
comboBoxType.SelectedItem = view.DeliveryType;
|
|||
|
isEdited = false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void OnInputChange(object sender, EventArgs e)
|
|||
|
{
|
|||
|
isEdited = true;
|
|||
|
}
|
|||
|
|
|||
|
private void buttonAdd_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (string.IsNullOrEmpty(textBoxFCs.Text))
|
|||
|
{
|
|||
|
MessageBox.Show("Заполните поле ФИО курьера", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
return;
|
|||
|
}
|
|||
|
if (string.IsNullOrEmpty(textBoxWishes.Text))
|
|||
|
{
|
|||
|
MessageBox.Show("Заполните Пожелания ", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
return;
|
|||
|
}
|
|||
|
if ((comboBoxType.SelectedItem == null))
|
|||
|
{
|
|||
|
MessageBox.Show("Выберите Тип доставки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
return;
|
|||
|
}
|
|||
|
isEdited = false;
|
|||
|
try
|
|||
|
{
|
|||
|
var model = new DeliveryBindingModel
|
|||
|
{
|
|||
|
Id = _id ?? 0,
|
|||
|
FCs = textBoxFCs.Text,
|
|||
|
Wishes = textBoxWishes.Text,
|
|||
|
DeliveryDate = inputComponentDate.Value.ToString().Length >= 10 ? inputComponentDate.Value.ToString().Substring(0, 10) : "Даты доставки нет",
|
|||
|
DeliveryType = comboBoxType.SelectedItem.ToString(),
|
|||
|
};
|
|||
|
var OperationResult = _id.HasValue ? _dLogic.Update(model) : _dLogic.Create(model);
|
|||
|
if (!OperationResult)
|
|||
|
{
|
|||
|
throw new Exception("Ошибка при создании курьера.");
|
|||
|
}
|
|||
|
MessageBox.Show("Сохранение прошло успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|||
|
DialogResult = DialogResult.OK;
|
|||
|
Close();
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void ProviderForm_FormClosing(object sender, FormClosingEventArgs e)
|
|||
|
{
|
|||
|
if (!isEdited) return;
|
|||
|
var confirmResult = MessageBox.Show("Вы не сохранили изменения.\nВы действительно хотите выйти?", "Подтвердите действие",
|
|||
|
MessageBoxButtons.YesNo,
|
|||
|
MessageBoxIcon.Question
|
|||
|
);
|
|||
|
|
|||
|
if (confirmResult == DialogResult.No) e.Cancel = true;
|
|||
|
}
|
|||
|
|
|||
|
private void buttonCancel_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
DialogResult = DialogResult.Cancel;
|
|||
|
Close();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|