Compare commits

..

3 Commits

Author SHA1 Message Date
yuliya.mavrina@internet.ru
80550c60fd Лаб_2сложн 2024-05-02 22:08:52 +03:00
yuliya.mavrina@internet.ru
85dc0d0ddd Лаб_2сложн 2024-04-23 15:52:38 +03:00
yuliya.mavrina@internet.ru
14c5a5991c Лаб_2сложн 2024-04-23 15:48:49 +03:00
2 changed files with 51 additions and 30 deletions

View File

@ -108,9 +108,7 @@ namespace RenovationWorkView
_logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'", id); _logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'", id);
try try
{ {
var operationResult = _orderLogic.FinishOrder(new var operationResult = _orderLogic.FinishOrder(new OrderBindingModel { Id = id });
OrderBindingModel
{ Id = id });
if (!operationResult) if (!operationResult)
{ {
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах."); throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
@ -127,28 +125,27 @@ namespace RenovationWorkView
private void buttonIssuedOrder_Click(object sender, EventArgs e) private void buttonIssuedOrder_Click(object sender, EventArgs e)
{ {
if (dataGridView.SelectedRows.Count == 1) if (dataGridView.SelectedRows.Count == 1)
{ {
int id = int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); _logger.LogInformation("Заказ No{id}. Меняется статус на 'Выдан'", id);
_logger.LogInformation("Заказ №{id}. Меняется статус на 'Выдан'", id); try
try {
{ var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel {Id = id});
var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel { Id = id }); if (!operationResult)
if (!operationResult) {
{ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах."); }
} _logger.LogInformation("Заказ No{id} выдан", id);
_logger.LogInformation("Заказ №{id} выдан", id); LoadData();
LoadData(); }
} catch (Exception ex)
catch (Exception ex) {
{ _logger.LogError(ex, "Ошибка отметки о выдачи заказа");
_logger.LogError(ex, "Ошибка отметки о выдачи заказа"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
} }
} }
}
private void buttonRef_Click(object sender, EventArgs e) private void buttonRef_Click(object sender, EventArgs e)
{ {

View File

@ -49,13 +49,13 @@ namespace RenovationWorkBusinessLogic.BusinessLogics
} }
private bool StatusUpdate(OrderBindingModel model, OrderStatus status) private bool StatusUpdate(OrderBindingModel model, OrderStatus status)
{ {
CheckModel(model);
var element = _orderStorage.GetElement(new OrderSearchModel { Id = model.Id }); var element = _orderStorage.GetElement(new OrderSearchModel { Id = model.Id });
if (element == null) if (element == null)
{ {
_logger.LogWarning("Read operation failed"); _logger.LogWarning("Read operation failed");
return false; return false;
} }
CheckModel(element);
if (element.Status != status - 1) if (element.Status != status - 1)
{ {
_logger.LogWarning("Status change operation failed"); _logger.LogWarning("Status change operation failed");
@ -63,13 +63,13 @@ namespace RenovationWorkBusinessLogic.BusinessLogics
} }
if (element.Status == OrderStatus.Готов) if (element.Status == OrderStatus.Готов)
{ {
var manufacture = _repairStorage.GetElement(new RepairSearchModel() { Id = model.RepairId }); var repair = _repairStorage.GetElement(new RepairSearchModel() { Id = model.RepairId });
if (manufacture == null) if (repair == null)
{ {
_logger.LogWarning("Status update to " + status.ToString() + " operation failed. Document not found."); _logger.LogWarning("Status update to " + status.ToString() + " operation failed. Document not found.");
return false; return false;
} }
if (CheckSupply(manufacture, model.Count) == false) if (CheckSupply(repair, model.Count) == false)
{ {
_logger.LogWarning("Status update to " + status.ToString() + " operation failed. Shop supply error."); _logger.LogWarning("Status update to " + status.ToString() + " operation failed. Shop supply error.");
return false; return false;
@ -130,7 +130,31 @@ namespace RenovationWorkBusinessLogic.BusinessLogics
} }
_logger.LogInformation("Order. Count: {Count}. Sum: {Sum}. Id: {Id}", model.Count, model.Sum, model.Id); _logger.LogInformation("Order. Count: {Count}. Sum: {Sum}. Id: {Id}", model.Count, model.Sum, model.Id);
} }
private bool CheckSupply(IRepairModel repair, int count) private void CheckModel(OrderViewModel model, bool withParams = true)
{
if (model == null)
{
throw new ArgumentNullException(nameof(model));
}
if (!withParams)
{
return;
}
if (model.RepairId < 0)
{
throw new ArgumentNullException("Некорректный идентификатор документа", nameof(model.RepairId));
}
if (model.Count <= 0)
{
throw new ArgumentNullException("Количество работ в заказе должно быть больше 0", nameof(model.Count));
}
if (model.Sum <= 0)
{
throw new ArgumentNullException("Сумма заказа должна быть больше 0", nameof(model.Sum));
}
_logger.LogInformation("Order. Count: {Count}. Sum: {Sum}. Id: {Id}", model.Count, model.Sum, model.Id);
}
private bool CheckSupply(IRepairModel repair, int count)
{ {
if (count <= 0) if (count <= 0)
{ {