This commit is contained in:
revengel66 2024-06-21 15:05:38 +04:00
parent c84c2beeeb
commit 278dc1ea67
3 changed files with 114 additions and 38 deletions

View File

@ -36,42 +36,42 @@
labelSum = new Label();
textBoxSum = new TextBox();
comboBoxPizza = new ComboBox();
comboBoxClient = new ComboBox();
labelClient = new Label();
SuspendLayout();
//
// textBoxCount
//
textBoxCount.Location = new Point(113, 55);
textBoxCount.Margin = new Padding(3, 4, 3, 4);
textBoxCount.Location = new Point(99, 73);
textBoxCount.Name = "textBoxCount";
textBoxCount.Size = new Size(266, 27);
textBoxCount.Size = new Size(233, 23);
textBoxCount.TabIndex = 13;
textBoxCount.TextChanged += textBoxCount_TextChanged;
//
// labelCount
//
labelCount.AutoSize = true;
labelCount.Location = new Point(13, 59);
labelCount.Location = new Point(11, 76);
labelCount.Name = "labelCount";
labelCount.Size = new Size(93, 20);
labelCount.Size = new Size(75, 15);
labelCount.TabIndex = 12;
labelCount.Text = "Количество:";
//
// labelPizza
//
labelPizza.AutoSize = true;
labelPizza.Location = new Point(13, 20);
labelPizza.Location = new Point(11, 15);
labelPizza.Name = "labelPizza";
labelPizza.Size = new Size(55, 20);
labelPizza.Size = new Size(43, 15);
labelPizza.TabIndex = 11;
labelPizza.Text = "Пицца";
//
// buttonCancel
//
buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
buttonCancel.Location = new Point(294, 145);
buttonCancel.Margin = new Padding(3, 4, 3, 4);
buttonCancel.Location = new Point(257, 170);
buttonCancel.Name = "buttonCancel";
buttonCancel.Size = new Size(86, 31);
buttonCancel.Size = new Size(75, 23);
buttonCancel.TabIndex = 15;
buttonCancel.Text = "Отмена";
buttonCancel.UseVisualStyleBackColor = true;
@ -80,10 +80,9 @@
// buttonSave
//
buttonSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
buttonSave.Location = new Point(193, 145);
buttonSave.Margin = new Padding(3, 4, 3, 4);
buttonSave.Location = new Point(169, 170);
buttonSave.Name = "buttonSave";
buttonSave.Size = new Size(94, 31);
buttonSave.Size = new Size(82, 23);
buttonSave.TabIndex = 16;
buttonSave.Text = "Сохранить";
buttonSave.UseVisualStyleBackColor = true;
@ -92,36 +91,53 @@
// labelSum
//
labelSum.AutoSize = true;
labelSum.Location = new Point(13, 97);
labelSum.Location = new Point(11, 105);
labelSum.Name = "labelSum";
labelSum.Size = new Size(58, 20);
labelSum.Size = new Size(48, 15);
labelSum.TabIndex = 12;
labelSum.Text = "Сумма:";
//
// textBoxSum
//
textBoxSum.Location = new Point(113, 93);
textBoxSum.Margin = new Padding(3, 4, 3, 4);
textBoxSum.Location = new Point(99, 102);
textBoxSum.Name = "textBoxSum";
textBoxSum.ReadOnly = true;
textBoxSum.Size = new Size(266, 27);
textBoxSum.Size = new Size(233, 23);
textBoxSum.TabIndex = 13;
//
// comboBoxPizza
//
comboBoxPizza.DropDownStyle = ComboBoxStyle.DropDownList;
comboBoxPizza.FormattingEnabled = true;
comboBoxPizza.Location = new Point(113, 16);
comboBoxPizza.Margin = new Padding(3, 4, 3, 4);
comboBoxPizza.Location = new Point(99, 12);
comboBoxPizza.Name = "comboBoxPizza";
comboBoxPizza.Size = new Size(266, 28);
comboBoxPizza.Size = new Size(233, 23);
comboBoxPizza.TabIndex = 17;
//
// comboBoxClient
//
comboBoxClient.FormattingEnabled = true;
comboBoxClient.Location = new Point(99, 43);
comboBoxClient.Name = "comboBoxClient";
comboBoxClient.Size = new Size(233, 23);
comboBoxClient.TabIndex = 18;
//
// labelClient
//
labelClient.AutoSize = true;
labelClient.Location = new Point(12, 46);
labelClient.Name = "labelClient";
labelClient.Size = new Size(46, 15);
labelClient.TabIndex = 19;
labelClient.Text = "Клиент";
//
// FormCreateOrder
//
AutoScaleDimensions = new SizeF(8F, 20F);
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(401, 200);
ClientSize = new Size(351, 211);
Controls.Add(labelClient);
Controls.Add(comboBoxClient);
Controls.Add(comboBoxPizza);
Controls.Add(buttonCancel);
Controls.Add(buttonSave);
@ -130,7 +146,6 @@
Controls.Add(textBoxCount);
Controls.Add(labelCount);
Controls.Add(labelPizza);
Margin = new Padding(3, 4, 3, 4);
Name = "FormCreateOrder";
Text = "Заказ";
Load += FormCreateOrder_Load;
@ -147,5 +162,7 @@
private Label labelSum;
private TextBox textBoxSum;
private ComboBox comboBoxPizza;
private ComboBox comboBoxClient;
private Label labelClient;
}
}

View File

@ -11,12 +11,14 @@ namespace Pizzeria
private readonly ILogger _logger;
private readonly IPizzaLogic _logicP;
private readonly IOrderLogic _logicO;
private readonly IClientLogic _logicC;
public FormCreateOrder(ILogger<FormCreateOrder> logger, IPizzaLogic logicP, IOrderLogic logicO)
public FormCreateOrder(ILogger<FormCreateOrder> logger, IPizzaLogic logicP, IOrderLogic logicO, IClientLogic logicC)
{
InitializeComponent();
_logger = logger;
_logicP = logicP;
_logicC = logicC;
_logicO = logicO;
}
private void FormCreateOrder_Load(object sender, EventArgs e)
@ -38,6 +40,23 @@ namespace Pizzeria
_logger.LogError(ex, "Ошибка при загрузке пиццы для заказа");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
_logger.LogInformation("Loading clients for order");
try
{
var clientList = _logicC.ReadList(null);
if (clientList != null)
{
comboBoxClient.DisplayMember = "ClientFIO";
comboBoxClient.ValueMember = "Id";
comboBoxClient.DataSource = clientList;
comboBoxClient.SelectedItem = null;
}
}
catch (Exception ex)
{
_logger.LogError(ex, "Error during loading clients for order");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void CalcSum()
@ -89,7 +108,12 @@ namespace Pizzeria
}
if (comboBoxPizza.SelectedValue == null)
{
MessageBox.Show("Выберите пицца", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show("Выберите пиццу", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (comboBoxClient.SelectedValue == null)
{
MessageBox.Show("Выберите клиента", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
_logger.LogInformation("Создание заказа");
@ -98,6 +122,7 @@ namespace Pizzeria
var operationResult = _logicO.CreateOrder(new OrderBindingModel
{
PizzaId = Convert.ToInt32(comboBoxPizza.SelectedValue),
ClientId = Convert.ToInt32(comboBoxClient.SelectedValue),
Count = Convert.ToInt32(textBoxCount.Text),
Sum = Convert.ToDouble(textBoxSum.Text)
});

View File

@ -4,8 +4,6 @@ using PizzeriaContracts.ViewModels;
using PizzeriaDatabaseImplement.Models;
using Microsoft.EntityFrameworkCore;
using PizzeriaContracts.StorageContracts;
using System.Collections.Generic;
using System.Linq;
namespace PizzeriaDatabaseImplement.Implements
{
@ -14,7 +12,11 @@ namespace PizzeriaDatabaseImplement.Implements
public List<OrderViewModel> GetFullList()
{
using var context = new PizzeriaDatabase();
return context.Orders.Include(x => x.Pizza).Include(x => x.Client).Select(x => x.GetViewModel).ToList();
return context.Orders
.Include(x => x.Pizza)
.Include(x => x.Client)
.Select(x => x.GetViewModel)
.ToList();
}
public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
@ -22,13 +24,28 @@ namespace PizzeriaDatabaseImplement.Implements
using var context = new PizzeriaDatabase();
if (model.DateFrom.HasValue)
{
return context.Orders.Include(x => x.Pizza).Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo).Select(x => x.GetViewModel).ToList();
return context.Orders
.Include(x => x.Pizza)
.Include(x => x.Client)
.Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo)
.Select(x => x.GetViewModel)
.ToList();
}
if (model.ClientId.HasValue)
{
return context.Orders.Include(x => x.Pizza).Where(x => x.ClientId == model.ClientId).Select(x => x.GetViewModel).ToList();
return context.Orders
.Include(x => x.Pizza)
.Include(x => x.Client)
.Where(x => x.ClientId == model.ClientId)
.Select(x => x.GetViewModel)
.ToList();
}
return context.Orders.Include(x => x.Pizza).Where(x => x.Id == model.Id).Select(x => x.GetViewModel).ToList();
return context.Orders
.Include(x => x.Pizza)
.Include(x => x.Client)
.Where(x => x.Id == model.Id)
.Select(x => x.GetViewModel)
.ToList();
}
public OrderViewModel? GetElement(OrderSearchModel model)
@ -38,7 +55,11 @@ namespace PizzeriaDatabaseImplement.Implements
return new();
}
using var context = new PizzeriaDatabase();
return context.Orders.Include(x => x.Pizza).FirstOrDefault(x => x.Id == model.Id)?.GetViewModel;
return context.Orders
.Include(x => x.Pizza)
.Include(x => x.Client)
.FirstOrDefault(x => x.Id == model.Id)
?.GetViewModel;
}
public OrderViewModel? Insert(OrderBindingModel model)
@ -53,7 +74,11 @@ namespace PizzeriaDatabaseImplement.Implements
}
context.Orders.Add(newOrder);
context.SaveChanges();
return newOrder.GetViewModel;
return context.Orders
.Include(x => x.Pizza)
.Include(x => x.Client)
.FirstOrDefault(x => x.Id == newOrder.Id)
?.GetViewModel;
}
public OrderViewModel? Update(OrderBindingModel model)
@ -66,7 +91,11 @@ namespace PizzeriaDatabaseImplement.Implements
}
order.Update(model);
context.SaveChanges();
return order.GetViewModel;
return context.Orders
.Include(x => x.Pizza)
.Include(x => x.Client)
.FirstOrDefault(x => x.Id == model.Id)
?.GetViewModel;
}
public OrderViewModel? Delete(OrderBindingModel model)
@ -75,9 +104,14 @@ namespace PizzeriaDatabaseImplement.Implements
var order = context.Orders.FirstOrDefault(rec => rec.Id == model.Id);
if (order != null)
{
var deletedElement = context.Orders
.Include(x => x.Pizza)
.Include(x => x.Client)
.FirstOrDefault(x => x.Id == model.Id)
?.GetViewModel;
context.Orders.Remove(order);
context.SaveChanges();
return order.GetViewModel;
return deletedElement;
}
return null;
}