240 lines
7.9 KiB
C#
240 lines
7.9 KiB
C#
using AutoMapper;
|
|
using ldap_cesi.DTOs;
|
|
using ldap_cesi.DTOs.Inputs.Salarie;
|
|
using ldap_cesi.DTOs.Inputs.Service;
|
|
using ldap_cesi.DTOs.Outputs.Salarie;
|
|
using ldap_cesi.Entities;
|
|
using ldap_cesi.Models;
|
|
using ldap_cesi.Repository.Services;
|
|
using ldap_cesi.Services.Interfaces;
|
|
using ldap_cesi.Validator.Salarie;
|
|
|
|
namespace ldap_cesi.Services;
|
|
|
|
public class SalarieService : ServiceBase<Salarie, SalarieDto, SalarieCreateDto, SalarieUpdateDto>, ISalarieService
|
|
{
|
|
private IRepositorySalarie _repositorySalarie;
|
|
private readonly IRepositorySite _repositorySite;
|
|
private readonly IRepositoryService _repositoryService;
|
|
private readonly IMapper _mapper;
|
|
|
|
public SalarieService(IRepositorySalarie repositorySalarie, IMapper mapper, IRepositorySite repositorySite, IRepositoryService repositoryService, ILogger<SalarieService> logger) : base(repositorySalarie, mapper, logger)
|
|
{
|
|
_repositorySalarie = repositorySalarie;
|
|
_repositorySite = repositorySite;
|
|
_repositoryService = repositoryService;
|
|
_mapper = mapper;
|
|
}
|
|
|
|
public async Task<IResponseDataModel<List<Salarie>>> GetAllWithoutIService()
|
|
{
|
|
var salaries = await _repositorySalarie.GetAllAsync();
|
|
return new ResponseDataModel<List<Salarie>>
|
|
{
|
|
Success = true,
|
|
Data = salaries,
|
|
StatusCode = 200,
|
|
};
|
|
}
|
|
|
|
// public async Task<IResponseDataModel<Salarie>> GetById(int id)
|
|
// {
|
|
// var salarie = await _repositorySalarie.GetSalarieWithRelationsAsync(id);
|
|
// return new ResponseDataModel<Salarie>
|
|
// {
|
|
// Success = true,
|
|
// Data = salarie,
|
|
// StatusCode = 200,
|
|
// };
|
|
// }
|
|
|
|
public async Task<IResponseDataModel<SalarieOutputDetail>> GetCompletById(int id)
|
|
{
|
|
var salarie = await _repositorySalarie.GetSalarieWithRelationsAsync(id);
|
|
var salarieOutput = _mapper.Map<SalarieOutputDetail>(salarie);
|
|
return new ResponseDataModel<SalarieOutputDetail>
|
|
{
|
|
Success = true,
|
|
Data = salarieOutput,
|
|
StatusCode = 200,
|
|
};
|
|
}
|
|
|
|
public async Task<IResponseDataModel<List<SalarieListDto>>> GetSalariesBySite(int siteId)
|
|
{
|
|
var site = await _repositorySite.GetByIdAsync(siteId);
|
|
if (site == null)
|
|
{
|
|
return new ResponseDataModel<List<SalarieListDto>>
|
|
{
|
|
Success = false,
|
|
Message = "Site non trouvé",
|
|
StatusCode = 404
|
|
};
|
|
}
|
|
|
|
var salaries = await _repositorySalarie.GetSalariesBySiteAsync(siteId);
|
|
if (!salaries.Any())
|
|
{
|
|
return new ResponseDataModel<List<SalarieListDto>>
|
|
{
|
|
Success = true,
|
|
Message = "Aucun salarié trouvé pour ce site",
|
|
Data = new List<SalarieListDto>(),
|
|
StatusCode = 200
|
|
};
|
|
}
|
|
|
|
var salariesDto = _mapper.Map<List<SalarieListDto>>(salaries);
|
|
|
|
return new ResponseDataModel<List<SalarieListDto>>
|
|
{
|
|
Success = true,
|
|
Data = salariesDto,
|
|
StatusCode = 200
|
|
};
|
|
}
|
|
|
|
public async Task<IResponseDataModel<List<SalarieListDto>>> GetSalariesByService(int serviceId)
|
|
{
|
|
var service = await _repositoryService.GetByIdAsync(serviceId);
|
|
if (service == null)
|
|
{
|
|
return new ResponseDataModel<List<SalarieListDto>>
|
|
{
|
|
Success = false,
|
|
Message = "Service non trouvé",
|
|
StatusCode = 404
|
|
};
|
|
}
|
|
|
|
var salaries = await _repositorySalarie.GetSalariesByServiceAsync(serviceId);
|
|
var salariesDto = _mapper.Map<List<SalarieListDto>>(salaries);
|
|
|
|
return new ResponseDataModel<List<SalarieListDto>>
|
|
{
|
|
Success = true,
|
|
Data = salariesDto,
|
|
StatusCode = 200
|
|
};
|
|
}
|
|
|
|
public async Task<IResponseDataModel<List<SalarieListDto>>> RechercherParNom(string nom)
|
|
{
|
|
var salaries = await _repositorySalarie.SearchByNameAsync(nom);
|
|
var salariesDto = _mapper.Map<List<SalarieListDto>>(salaries);
|
|
|
|
return new ResponseDataModel<List<SalarieListDto>>
|
|
{
|
|
Success = true,
|
|
Data = salariesDto,
|
|
StatusCode = 200
|
|
};
|
|
}
|
|
|
|
// public async Task<IResponseDataModel<string>> Create(SalarieCreateDto salarieInput)
|
|
// {
|
|
// var validation = new SalarieCreateValidator();
|
|
// var result = validation.Validate(salarieInput);
|
|
// if (!result.IsValid)
|
|
// {
|
|
// return new ResponseDataModel<string>
|
|
// {
|
|
// StatusCode = 400,
|
|
// Success = false,
|
|
// Message = "Données salariées invalides: " + string.Join(", ", result.Errors)
|
|
// };
|
|
// }
|
|
// var service = _mapper.Map<Salarie>(salarieInput);
|
|
// var response = await _repositorySalarie.AddAsync(service);
|
|
// return new ResponseDataModel<string>
|
|
// {
|
|
// StatusCode = 201,
|
|
// Success = true,
|
|
// Data = response.Id.ToString(),
|
|
// };
|
|
// }
|
|
|
|
// public async Task<IResponseDataModel<Salarie>> Update(SalarieUpdateDto salarieInput)
|
|
// {
|
|
// var validation = new SalarieUpdateValidator();
|
|
// var result = validation.Validate(salarieInput);
|
|
// if (!result.IsValid)
|
|
// {
|
|
// return new ResponseDataModel<Salarie>
|
|
// {
|
|
// StatusCode = 400,
|
|
// Success = false,
|
|
// Message = "Données salariées invalides: " + string.Join(", ", result.Errors)
|
|
// };
|
|
// }
|
|
|
|
// var salarieFind = await _repositorySalarie.GetByIdAsync(salarieInput.Id);
|
|
// if (salarieFind == null)
|
|
// {
|
|
// return new ResponseDataModel<Salarie>
|
|
// {
|
|
// Success = false,
|
|
// Message = "Salarié introuvable.",
|
|
// StatusCode = 404
|
|
// };
|
|
// }
|
|
|
|
// var salarie = _mapper.Map(salarieInput, salarieFind);
|
|
// var response = await _repositorySalarie.UpdateAsync(salarie);
|
|
// if (!response)
|
|
// {
|
|
// return new ResponseDataModel<Salarie>
|
|
// {
|
|
// StatusCode = 500,
|
|
// Success = false,
|
|
// Message = "Erreur lors de la mise à jour du salarié : " + string.Join(", ", result.Errors)
|
|
// };
|
|
// }
|
|
// return new ResponseDataModel<Salarie>
|
|
// {
|
|
// StatusCode = 200,
|
|
// Success = true,
|
|
// Data = salarie,
|
|
// };
|
|
// }
|
|
|
|
// public async Task<IResponseDataModel<string>> Delete(int id)
|
|
// {
|
|
// if (id == null)
|
|
// {
|
|
// return new ResponseDataModel<string>
|
|
// {
|
|
// StatusCode = 400,
|
|
// Success = false,
|
|
// Message = "Id manquant"
|
|
// };
|
|
// }
|
|
// var salarie = await _repositorySalarie.GetByIdAsync(id);
|
|
// if (salarie == null)
|
|
// {
|
|
// return new ResponseDataModel<string>
|
|
// {
|
|
// Success = false,
|
|
// Message = "Salarié introuvable.",
|
|
// StatusCode = 404
|
|
// };
|
|
// }
|
|
// var response = await _repositorySalarie.DeleteAsync(salarie);
|
|
// if (!response)
|
|
// {
|
|
// return new ResponseDataModel<string>
|
|
// {
|
|
// StatusCode = 500,
|
|
// Success = false,
|
|
// Message = "Erreur durant la suppression du service"
|
|
// };
|
|
// }
|
|
// return new ResponseDataModel<string>
|
|
// {
|
|
// StatusCode = 200,
|
|
// Success = true,
|
|
// Data = salarie.Id.ToString(),
|
|
// };
|
|
// }
|
|
} |