102 lines
3.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|