64 lines
2.1 KiB
C#
64 lines
2.1 KiB
C#
using NorthBridgeContract.BusinessLogicsContracts;
|
|
using NorthBridgeContract.DataModels;
|
|
using NorthBridgeContract.StoragesContracts;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace NorthBridgeBusinessLogic.Implementations
|
|
{
|
|
public class SupplyBusinessLogicContract : ISupplyBusinessLogicContract
|
|
{
|
|
private readonly ISupplyStorageContract _supplyStorageContract;
|
|
|
|
public SupplyBusinessLogicContract(ISupplyStorageContract supplyStorageContract)
|
|
{
|
|
_supplyStorageContract = supplyStorageContract;
|
|
}
|
|
|
|
public void CreateSupply(SupplyDataModel supply)
|
|
{
|
|
supply.Validate();
|
|
_supplyStorageContract.AddSupply(supply);
|
|
}
|
|
|
|
public SupplyDataModel GetSupplyById(string supplyId)
|
|
{
|
|
var supply = _supplyStorageContract.GetSupplyById(supplyId);
|
|
if (supply == null)
|
|
{
|
|
throw new ArgumentException($"Supply with ID {supplyId} not found.");
|
|
}
|
|
return supply;
|
|
}
|
|
|
|
public List<SupplyDataModel> GetSuppliesByStorageId(string storageId)
|
|
{
|
|
return _supplyStorageContract.GetSuppliesByStorageId(storageId);
|
|
}
|
|
|
|
public void AddOrUpdateComponentInSupply(ComponentInSupplyDataModel componentInSupply)
|
|
{
|
|
componentInSupply.Validate();
|
|
_supplyStorageContract.AddOrUpdateComponentInSupply(componentInSupply);
|
|
}
|
|
|
|
public void UpdateComponentCountInSupply(string supplyId, string componentId, int newCount)
|
|
{
|
|
if (newCount <= 0)
|
|
{
|
|
throw new ArgumentException("Component count must be greater than zero.");
|
|
}
|
|
_supplyStorageContract.UpdateComponentCountInSupply(supplyId, componentId, newCount);
|
|
}
|
|
|
|
public void RemoveComponentFromSupply(string supplyId, string componentId)
|
|
{
|
|
_supplyStorageContract.RemoveComponentFromSupply(supplyId, componentId);
|
|
}
|
|
}
|
|
|
|
}
|