Илья Федотов 6048105937 Enter fix
2024-05-05 18:00:10 +04:00

163 lines
5.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using DinerContracts.BindingModels;
using DinerContracts.BusinessLogicsContacts;
using DinerContracts.BusinessLogicsContracts;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DinerView
{
public partial class FormMain : Form {
private readonly ILogger _logger;
private readonly IOrderLogic _orderLogic;
private readonly IReportLogic _reportLogic;
public FormMain(ILogger<FormMain> logger, IOrderLogic orderLogic, IReportLogic reportLogic) {
InitializeComponent();
_logger = logger;
_orderLogic = orderLogic;
_reportLogic = reportLogic;
}
private void FormMain_Load(object sender, EventArgs e) {
LoadData();
}
private void LoadData() {
_logger.LogInformation("Загрузка заказов");
try {
var list = _orderLogic.ReadList(null);
if (list != null) {
dataGridView.DataSource = list;
dataGridView.Columns["SnackID"].Visible = false;
dataGridView.Columns["Sum"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
_logger.LogInformation("Загрузка заказов");
}
catch (Exception ex) {
_logger.LogError(ex, "Ошибка загрузки заказов");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void toolStripMenuItemFoods_Click(object sender, EventArgs e) {
var service = Program.ServiceProvider?.GetService(typeof(FormFoods));
if (service is FormFoods form) {
form.ShowDialog();
LoadData();
}
}
private void toolStripMenuItemSnacks_Click(object sender, EventArgs e) {
var service = Program.ServiceProvider?.GetService(typeof(FormSnacks));
if (service is FormSnacks form) {
form.ShowDialog();
LoadData();
}
}
private void buttonCreateOrder_Click(object sender, EventArgs e) {
var service = Program.ServiceProvider?.GetService(typeof(FormCreateOrder));
if (service is FormCreateOrder form) {
form.ShowDialog();
LoadData();
}
}
private void buttonInWork_Click(object sender, EventArgs e) {
if (dataGridView.SelectedRows.Count == 1) {
int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["ID"].Value);
_logger.LogInformation("Заказ №{ID}. Меняется статус на 'В работе'", id);
try {
var operationResult = _orderLogic.TakeOrderInWork(new OrderBindingModel { ID = id });
if (!operationResult) {
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
}
LoadData();
}
catch (Exception ex) {
_logger.LogError(ex, "Ошибка передачи заказа в работу");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void buttonIsReady_Click(object sender, EventArgs e) {
if (dataGridView.SelectedRows.Count == 1) {
int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
_logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'", id);
try {
var operationResult = _orderLogic.FinishOrder(new OrderBindingModel { ID = id });
if (!operationResult) {
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
}
LoadData();
}
catch (Exception ex) {
_logger.LogError(ex, "Ошибка отметки о готовности заказа");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void buttonIsDelivery_Click(object sender, EventArgs e) {
if (dataGridView.SelectedRows.Count == 1) {
int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
_logger.LogInformation("Заказ №{id}. Меняется статус на 'Выдан'", id);
try {
var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel { ID = id });
if (!operationResult) {
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
}
_logger.LogInformation("Заказ №{id} выдан", id);
LoadData();
}
catch (Exception ex) {
_logger.LogError(ex, "Ошибка отметки о выдачи заказа");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void buttonUpdateList_Click(object sender, EventArgs e) {
LoadData();
}
private void FoodsToolStripMenuItem_Click(object sender, EventArgs e) {
using var dialog = new SaveFileDialog { Filter = "docx|*.docx" };
if (dialog.ShowDialog() == DialogResult.OK) {
_reportLogic.SaveComponentsToWorldFile(new ReportBindingModel { FileName = dialog.FileName });
MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void FoodSnacksToolStripMenuItem_Click(object sender, EventArgs e) {
var service = Program.ServiceProvider?.GetService(typeof(FormReportSnackFoods));
if (service is FormReportSnackFoods form) {
form.ShowDialog();
}
}
private void ordersToolStripMenuItem_Click(object sender, EventArgs e) {
var service = Program.ServiceProvider?.GetService(typeof(FormReportOrders));
if (service is FormReportOrders form) {
form.ShowDialog();
}
}
private void toolStripMenuItemClient_Click(object sender, EventArgs e) {
var service = Program.ServiceProvider?.GetService(typeof(FormClient));
if (service is FormClient form) {
form.ShowDialog();
}
}
}
}