using DressAtelierContracts.BindingModels; using DressAtelierContracts.BusinessLogicContracts; using DressAtelierContracts.SearchModels; using DressAtelierDataModels.Models; using Microsoft.Extensions.Logging; 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 SewingDresses { public partial class FormDressSelling : Form { private readonly IAtelierLogic _logicAtelier; private readonly IDressLogic _logicDress; private readonly ILogger _logger; private Dictionary _dressesList; public FormDressSelling(ILogger logger, IDressLogic logicD, IAtelierLogic logicA) { InitializeComponent(); _logger = logger; _logicDress = logicD; _dressesList = new Dictionary(); _logicAtelier = logicA; } private void buttonCancel_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; Close(); } private void buttonSell_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(textBoxQuantity.Text)) { MessageBox.Show("Fill quantity field", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } DressSearchModel model = new DressSearchModel { ID = Convert.ToInt32(comboBoxDresses.SelectedValue) }; if(!_logicAtelier.SellDress(model, Convert.ToInt32(textBoxQuantity.Text))) { MessageBox.Show("There are not enough of specified dresses.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } MessageBox.Show("Dresses were sold.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = DialogResult.OK; Close(); } private void FormDressSelling_Load(object sender, EventArgs e) { _logger.LogInformation("Downloading dresses"); try { var _list = _logicDress.ReadList(null); if (_list != null) { comboBoxDresses.DisplayMember = "DressName"; comboBoxDresses.ValueMember = "ID"; comboBoxDresses.DataSource = _list; comboBoxDresses.SelectedItem = null; } } catch (Exception ex) { _logger.LogError(ex, "Downloading dresses error"); MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }