113 lines
3.7 KiB
C#
113 lines
3.7 KiB
C#
using AutoMapper;
|
|
using YAPContracts.AdapterContracts;
|
|
using YAPContracts.BindingModels;
|
|
using YAPContracts.BusinessLogicContracts;
|
|
using YAPContracts.DataModels;
|
|
using YAPContracts.DataModels.UserRoles;
|
|
using YAPContracts.Extentions;
|
|
using YAPContracts.ViewModels;
|
|
using YAPDatabase.Models;
|
|
|
|
namespace YAPWebAPI.Adapters
|
|
{
|
|
public class WorkerAdapter : IWorkerAdapter
|
|
{
|
|
private readonly IWorkerBusinessLogicContract _workerBL;
|
|
private readonly ILogger _logger;
|
|
private readonly Mapper _mapper;
|
|
|
|
public WorkerAdapter(IWorkerBusinessLogicContract workerBL, ILogger logger)
|
|
{
|
|
_logger = logger;
|
|
_workerBL = workerBL;
|
|
var config = new MapperConfiguration(cfg =>
|
|
{
|
|
cfg.CreateMap<WorkerBindingModel, WorkerDataModel>();
|
|
cfg.CreateMap<WorkerDataModel, WorkerViewModel>();
|
|
cfg.CreateMap<WorkerViewModel, WorkerDataModel>();
|
|
});
|
|
_mapper = new Mapper(config);
|
|
|
|
}
|
|
|
|
public List<WorkerViewModel> GetList()
|
|
{
|
|
try
|
|
{
|
|
return _workerBL.GetAllWorkers()
|
|
.Select(x => _mapper.Map<WorkerViewModel>(x)).ToList();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Handle exceptions as needed, e.g., log them or rethrow
|
|
_logger.LogError(ex, "Error in Worker GetList");
|
|
throw new Exception("Error retrieving users list", ex);
|
|
}
|
|
}
|
|
|
|
public WorkerViewModel? GetElement(string data)
|
|
{
|
|
try
|
|
{
|
|
var dataModel = _workerBL.GetWorkerByData(data);
|
|
return dataModel != null ? _mapper.Map<WorkerViewModel>(dataModel) : null;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError(ex, "Error in Worker GetElement");
|
|
throw new Exception($"Error retrieving user with data {data}", ex);
|
|
}
|
|
}
|
|
|
|
public void Register(WorkerBindingModel model)
|
|
{
|
|
try
|
|
{
|
|
if (model == null)
|
|
{
|
|
throw new ArgumentNullException(nameof(model), "User data model cannot be null");
|
|
}
|
|
var dataModel = _mapper.Map<WorkerDataModel>(model);
|
|
_workerBL.InsertWorker(dataModel);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError(ex, "Error in Worker Register");
|
|
throw new Exception("Error adding user data model", ex);
|
|
}
|
|
}
|
|
public void Update(WorkerBindingModel model)
|
|
{
|
|
try
|
|
{
|
|
if (model == null)
|
|
{
|
|
throw new ArgumentNullException(nameof(model), "User data model cannot be null");
|
|
}
|
|
var dataModel = _mapper.Map<WorkerDataModel>(model);
|
|
_workerBL.UpdateWorker(dataModel);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError(ex, "Error in Worker 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");
|
|
_workerBL.DeleteWorker(id);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Handle exceptions as needed, e.g., log them or rethrow
|
|
_logger.LogError(ex, "Error in Worker Delete");
|
|
throw new Exception($"Error deleting purchase with ID {id}", ex);
|
|
}
|
|
}
|
|
}
|
|
}
|