75 lines
2.6 KiB
C#
75 lines
2.6 KiB
C#
using Microsoft.Extensions.Logging;
|
|
using NorthBridgeContract.BusinessLogicsContracts;
|
|
using NorthBridgeContract.DataModels;
|
|
using NorthBridgeContract.Enums;
|
|
using NorthBridgeContract.Exceptions;
|
|
using NorthBridgeContract.StoragesContracts;
|
|
|
|
namespace NorthBridgeBusinessLogic.Implementations
|
|
{
|
|
internal class ComponentBusinessLogicContract(IComponentStorageContract componentStorageContract, ILogger logger) : IComponentBusinessLogicContract
|
|
{
|
|
private readonly ILogger _logger = logger;
|
|
private readonly IComponentStorageContract _componentStorageContract = componentStorageContract;
|
|
|
|
public List<ComponentDataModel> GetAllComponents(bool onlyActive)
|
|
{
|
|
return [];
|
|
}
|
|
|
|
public ComponentDataModel? GetComponentById(string id)
|
|
{
|
|
return new ComponentDataModel("", "", ComponentType.None, "", 0, false);
|
|
}
|
|
|
|
public ComponentDataModel? GetComponentByName(string name)
|
|
{
|
|
return new ComponentDataModel("", "", ComponentType.None, "", 0, false);
|
|
}
|
|
|
|
public void InsertComponent(ComponentDataModel componentDataModel)
|
|
{
|
|
componentDataModel.Validate();
|
|
_componentStorageContract.AddElement(componentDataModel);
|
|
}
|
|
|
|
public void UpdateComponent(ComponentDataModel componentDataModel)
|
|
{
|
|
var existingComponent = _componentStorageContract.GetElementById(componentDataModel.Id);
|
|
if (existingComponent == null)
|
|
throw new ValidationException("Component not found");
|
|
|
|
if (existingComponent.Price != componentDataModel.Price)
|
|
{
|
|
var historyEntry = new ComponentHistoryDataModel(existingComponent.Id, existingComponent.Price);
|
|
historyEntry.Validate();
|
|
_componentStorageContract.AddComponentHistory(historyEntry);
|
|
}
|
|
|
|
componentDataModel.Validate();
|
|
_componentStorageContract.UpdElement(componentDataModel);
|
|
}
|
|
|
|
public void DeleteComponent(string id)
|
|
{
|
|
_componentStorageContract.DelElement(id);
|
|
}
|
|
|
|
public void RestoreComponent(string id)
|
|
{
|
|
_componentStorageContract.ResElement(id);
|
|
}
|
|
|
|
public List<ComponentHistoryDataModel> GetComponentHistory(string componentId)
|
|
{
|
|
return _componentStorageContract.GetComponentHistory(componentId);
|
|
}
|
|
|
|
public ComponentDataModel GetComponentByData(string data)
|
|
{
|
|
return new ComponentDataModel("", "", ComponentType.None, "", 0, false);
|
|
}
|
|
}
|
|
|
|
}
|