shop repair overflow fix

This commit is contained in:
ShabOl 2024-04-10 23:59:33 +04:00
parent ad9847c51c
commit b81bb26b41
2 changed files with 13 additions and 5 deletions

View File

@ -110,6 +110,13 @@ namespace AutoWorkshopBusinessLogic.BusinessLogics
if (Shop == null)
throw new ArgumentException("Магазина не существует");
int CurrentRepairsNum = Shop.ShopRepairs.Select(x => x.Value.Item2).Sum();
if (Model.Count > Shop.RepairsMaxCount - CurrentRepairsNum)
{
_logger.LogWarning("Попытка добавить в магазин число элементов, большее RepairsMaxCount");
return false;
}
if (Shop.ShopRepairs.ContainsKey(Model.RepairId))
{
var RepairsNum = Shop.ShopRepairs[Model.RepairId];
@ -173,8 +180,7 @@ namespace AutoWorkshopBusinessLogic.BusinessLogics
if (!Model.RepairId.HasValue || !Model.Count.HasValue)
return false;
_logger.LogInformation("Проверка ремонтов во всех магазинах");
_logger.LogInformation("Поиск ремонтов во всех магазинах");
if (_shopStorage.Sell(Model))
{
_logger.LogInformation("Продажа выполнена успешно");

View File

@ -87,15 +87,17 @@ namespace AutoWorkshopFileImplement.Implements
if (Model == null || !Model.RepairId.HasValue || !Model.Count.HasValue)
return false;
int RemainingSpace = _source.Shops.Select(x => x.Repairs.ContainsKey(Model.RepairId.Value) ? x.Repairs[Model.RepairId.Value] : 0).Sum();
int RemainingSpace = _source.Shops
.Select(x => x.Repairs.ContainsKey(Model.RepairId.Value) ? x.Repairs[Model.RepairId.Value] : 0)
.Sum();
if (RemainingSpace < Model.Count)
return false;
var Shops = _source.Shops
var ShopsWithDesiredRepair = _source.Shops
.Where(x => x.Repairs.ContainsKey(Model.RepairId.Value))
.OrderByDescending(x => x.Repairs[Model.RepairId.Value]).ToList();
foreach (var Shop in Shops)
foreach (var Shop in ShopsWithDesiredRepair)
{
int Slack = Model.Count.Value - Shop.Repairs[Model.RepairId.Value];