111 lines
3.9 KiB
C#
111 lines
3.9 KiB
C#
using AutoMapper;
|
|
using YAPContracts.AdapterContracts;
|
|
using YAPContracts.BindingModels;
|
|
using YAPContracts.BusinessLogicContracts;
|
|
using YAPContracts.DataModels.UserRoles;
|
|
using YAPContracts.Extentions;
|
|
using YAPContracts.ViewModels;
|
|
|
|
namespace YAPWebApplication.Adapters
|
|
{
|
|
public class StorekeeperAdapter : IStorekeeperAdapter
|
|
{
|
|
private readonly IStorekeeperBusinessLogicContract _storekeeperBusinessLogic;
|
|
private readonly ILogger _logger;
|
|
private readonly Mapper _mapper;
|
|
|
|
public StorekeeperAdapter(IStorekeeperBusinessLogicContract storekeeperBusinessLogic, ILogger logger)
|
|
{
|
|
_storekeeperBusinessLogic = storekeeperBusinessLogic;
|
|
_logger = logger;
|
|
|
|
var config = new MapperConfiguration(cfg =>
|
|
{
|
|
cfg.CreateMap<StorekeeperBindingModel, StorekeeperDataModel>();
|
|
cfg.CreateMap<StorekeeperDataModel, StorekeeperViewModel>();
|
|
cfg.CreateMap<StorekeeperViewModel, StorekeeperDataModel>();
|
|
});
|
|
_mapper = new Mapper(config);
|
|
}
|
|
|
|
public List<StorekeeperViewModel> GetList()
|
|
{
|
|
try
|
|
{
|
|
return _storekeeperBusinessLogic.GetAllStorekeepers()
|
|
.Select(x => _mapper.Map<StorekeeperViewModel>(x)).ToList();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Handle exceptions as needed, e.g., log them or rethrow
|
|
_logger.LogError(ex, "Error in Storekeeper GetList");
|
|
throw new Exception("Error retrieving users list", ex);
|
|
}
|
|
}
|
|
|
|
public StorekeeperViewModel? GetElement(string data)
|
|
{
|
|
try
|
|
{
|
|
var dataModel = _storekeeperBusinessLogic.GetStorekeeperByData(data);
|
|
return dataModel != null ? _mapper.Map<StorekeeperViewModel>(dataModel) : null;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError(ex, "Error in Storekeeper GetElement");
|
|
throw new Exception($"Error retrieving user with data {data}", ex);
|
|
}
|
|
}
|
|
|
|
public void Register(StorekeeperBindingModel model)
|
|
{
|
|
try
|
|
{
|
|
if (model == null)
|
|
{
|
|
throw new ArgumentNullException(nameof(model), "User data model cannot be null");
|
|
}
|
|
var dataModel = _mapper.Map<StorekeeperDataModel>(model);
|
|
_storekeeperBusinessLogic.InsertStorekeeper(dataModel);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError(ex, "Error in Storekeeper Register");
|
|
throw new Exception("Error adding user data model", ex);
|
|
}
|
|
}
|
|
public void Update(StorekeeperBindingModel model)
|
|
{
|
|
try
|
|
{
|
|
if (model == null)
|
|
{
|
|
throw new ArgumentNullException(nameof(model), "User data model cannot be null");
|
|
}
|
|
var dataModel = _mapper.Map<StorekeeperDataModel>(model);
|
|
_storekeeperBusinessLogic.UpdateStorekeeper(dataModel);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError(ex, "Error in Storekeeper Update");
|
|
throw new Exception("Error adding user data model", ex);
|
|
}
|
|
}
|
|
|
|
public void Delete(string id)
|
|
{
|
|
try
|
|
{
|
|
if (!id.IsGuid()) throw new ArgumentException(nameof(id), "Incorrect Id");
|
|
_storekeeperBusinessLogic.DeleteStorekeeper(id);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Handle exceptions as needed, e.g., log them or rethrow
|
|
_logger.LogError(ex, "Error in Storekeeper Delete");
|
|
throw new Exception($"Error deleting purchase with ID {id}", ex);
|
|
}
|
|
}
|
|
}
|
|
}
|