IEmploisClient
Client pour la gestion des emplois dans MCM. Un emploi représente le lien entre un employé et un employeur.
public interface IEmploisClient : IBaseClient
Méthodes
GetAllEmplois
Récupère tous les emplois.
Task<ErrorOr<IEnumerable<B2BEmploiItem>>> GetAllEmplois()
Exemple:
var result = await _emploisClient.GetAllEmplois();
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
foreach (var emploi in result.Value)
{
Console.WriteLine($"{emploi.IdentifiantExterneEmploye} chez {emploi.NomEmployeur}");
Console.WriteLine($" Matricule: {emploi.Matricule}");
Console.WriteLine($" Début: {emploi.DateDebut} - Fin: {emploi.DateFin ?? "En cours"}");
}
SearchEmplois
Recherche des emplois avec filtres optionnels via l'API V2. Contrairement à GetAllEmplois, cette méthode permet de filtrer par syndicat, employeur, employé, matricule ou statut actif.
Task<ErrorOr<IEnumerable<B2BEmploiItem>>> SearchEmplois(B2BEmploiSearchRequest? search = null)
Paramètres:
| Nom | Type | Description |
|---|---|---|
search | B2BEmploiSearchRequest? | Critères de recherche optionnels. Si null, retourne tous les emplois (équivalent à GetAllEmplois mais via V2). |
Retour: Liste des emplois correspondant aux critères.
Cette méthode utilise l'endpoint b2b/v2/emploi. Préférez-la à GetAllEmplois lorsque vous avez besoin de filtrer les résultats.
Exemple:
// Recherche tous les emplois actifs d'un employeur
var result = await _emploisClient.SearchEmplois(new B2BEmploiSearchRequest
{
IdExterneEmployeur = "EMPL-001",
Actif = true
});
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
foreach (var emploi in result.Value)
{
Console.WriteLine($"{emploi.IdentifiantExterneEmploye} chez {emploi.NomEmployeur}");
Console.WriteLine($" Matricule: {emploi.Matricule}");
}
GetEmploiById
Récupère un emploi par son identifiant externe.
Task<ErrorOr<B2BEmploiItem>> GetEmploiById(string idExterne)
Paramètres:
| Nom | Type | Description |
|---|---|---|
idExterne | string | Identifiant externe de l'emploi |
Exemple:
var result = await _emploisClient.GetEmploiById("EMPLOI-001");
if (result.IsError)
{
Console.WriteLine($"Erreur: {result.FirstError.Description}");
return;
}
var emploi = result.Value;
Console.WriteLine($"Employé: {emploi.IdentifiantExterneEmploye}");
Console.WriteLine($"Employeur: {emploi.NomEmployeur} ({emploi.IdentifiantExterneEmployeur})");
AddEmploi
Crée un nouvel emploi.
Task<ErrorOr<Success>> AddEmploi(B2BUpdateEmploiDto toAdd)
Exemple:
var nouvelEmploi = new B2BUpdateEmploiDto
{
IdentifiantExterne = "EMPLOI-NEW",
IdentifiantExterneEmploye = "EMP-001",
IdentifiantExterneEmployeur = "EMPL-001",
Matricule = "MAT-12345",
DateDebut = new DateTime(2025, 1, 15)
};
var result = await _emploisClient.AddEmploi(nouvelEmploi);
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
_logger.LogInformation("Emploi créé");
UpdateEmploi
Met à jour un emploi existant.
Task<ErrorOr<Success>> UpdateEmploi(B2BUpdateEmploiDto toUpdate)
Exemple:
var emploiModifie = new B2BUpdateEmploiDto
{
IdentifiantExterne = "EMPLOI-001",
IdentifiantExterneEmploye = "EMP-001",
IdentifiantExterneEmployeur = "EMPL-001",
Matricule = "MAT-99999",
DateFin = new DateTime(2025, 12, 31)
};
var result = await _emploisClient.UpdateEmploi(emploiModifie);
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
}
DeleteEmploi
Supprime un emploi.
Task<ErrorOr<Success>> DeleteEmploi(string idExterne)
Paramètres:
| Nom | Type | Description |
|---|---|---|
idExterne | string | Identifiant externe de l'emploi à supprimer |
La suppression d'un emploi rompt le lien entre un employé et un employeur. Vérifiez les dépendances avant de supprimer.
Exemple:
var result = await _emploisClient.DeleteEmploi("EMPLOI-001");
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
}
Types associés
B2BEmploiItem- DTO de lecture d'un emploiB2BUpdateEmploiDto- DTO pour création/modification d'emploiB2BEmploiSearchRequest- Critères de recherche pourSearchEmplois