Files
PIBD-23_Coursach_YouAreProg…/YouAreProgrammerShop/YAPWebAPI/Adapters/ComponentAdapter.cs

102 lines
3.0 KiB
C#

using AutoMapper;
using YAPContracts.AdapterContracts;
using YAPContracts.BindingModels;
using YAPContracts.BusinessLogicContracts;
using YAPContracts.DataModels;
using YAPContracts.ViewModels;
namespace YAPWebAPI.Adapters
{
public class ComponentAdapter : IComponentAdapter
{
private readonly IComponentBusinessLogicContract _productBL;
private readonly ILogger _logger;
private readonly Mapper _mapper;
public ComponentAdapter(IComponentBusinessLogicContract productBL, ILogger<ComponentAdapter> logger)
{
_productBL = productBL;
_logger = logger;
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<ComponentBindingModel, ComponentDataModel>();
cfg.CreateMap<ComponentDataModel, ComponentViewModel>();
cfg.CreateMap<ComponentViewModel, ComponentDataModel>();
});
_mapper = new Mapper(config);
}
public List<ComponentViewModel>? GetList(bool onlyActual = true)
{
try
{
return _productBL.GetAllComponents(onlyActual)
.Select(x => _mapper.Map<ComponentViewModel>(x))
.ToList();
}
catch (Exception ex)
{
_logger.LogError(ex, "Error in ComponentAdapter.GetList");
return null;
}
}
public ComponentViewModel? GetComponentByData(string data)
{
try
{
var model = _productBL.GetComponentByData(data);
return model != null ? _mapper.Map<ComponentViewModel>(model) : null;
}
catch (Exception ex)
{
_logger.LogError(ex, "Error in ComponentAdapter.GetComponentByData");
return null;
}
}
public void Insert(ComponentBindingModel product)
{
try
{
var data = _mapper.Map<ComponentDataModel>(product);
_productBL.InsertComponent(data);
}
catch (Exception ex)
{
_logger.LogError(ex, "Error in ComponentAdapter.Insert");
throw;
}
}
public void Update(ComponentBindingModel product)
{
try
{
var data = _mapper.Map<ComponentDataModel>(product);
_productBL.UpdateComponent(data);
}
catch (Exception ex)
{
_logger.LogError(ex, "Error in ComponentAdapter.Update");
throw;
}
}
public void Delete(string id)
{
try
{
_productBL.DeleteComponent(id);
}
catch (Exception ex)
{
_logger.LogError(ex, "Error in ComponentAdapter.Delete");
throw;
}
}
}
}