@ -82,7 +82,7 @@ namespace EPAServeur.Services
/// <param name="texte">Texte permettant d'identifier l'objet rechercher</param>
/// <param name="tri">Colonne du tableau sur lequel le tri s'effectue</param>
/// <returns></returns>
public IEnumerable < FormationDTO > GetFormations ( bool? asc , int? numPage , int? parPAge , int ? idAgence , int? statutFormation , string texte , string tri )
public IEnumerable < FormationDTO > GetFormations ( bool? asc , int? numPage , int? parPAge , long ? idAgence , int? statutFormation , string texte , string tri )
{
IEnumerable < Formation > formations ;
IEnumerable < FormationDTO > formationDTOs ;
@ -129,10 +129,6 @@ namespace EPAServeur.Services
. Include ( formation = > formation . TypeFormation ) . Skip ( skip ) . Take ( take ) ;
}
if ( formations = = null )
return null ;
formationDTOs = formations . Where ( formation = > formation . Intitule . ToLower ( ) . Contains ( texte ) ) . Select ( formation = > GetFormationDTO ( formation ) ) ;
return formationDTOs ;
@ -148,7 +144,7 @@ namespace EPAServeur.Services
/// <param name="texte">Texte permettant d'identifier l'objet rechercher</param>
/// <param name="tri">Colonne du tableau sur lequel le tri s'effectue</param>
/// <returns></returns>
public async Task < IEnumerable < FormationDTO > > GetFormationsAsync ( bool? asc , int? numPage , int? parPAge , int ? idAgence , int? statutFormation , string texte , string tri )
public async Task < IEnumerable < FormationDTO > > GetFormationsAsync ( bool? asc , int? numPage , int? parPAge , long ? idAgence , int? statutFormation , string texte , string tri )
{
IEnumerable < Formation > formations ;
IEnumerable < FormationDTO > formationDTOs ;
@ -199,10 +195,6 @@ namespace EPAServeur.Services
}
if ( formations = = null )
return null ;
formationDTOs = formations . Where ( formation = > formation . Intitule . ToLower ( ) . Contains ( texte ) ) . Select ( formation = > GetFormationDTO ( formation ) ) ;
return formationDTOs ;
@ -218,7 +210,7 @@ namespace EPAServeur.Services
/// <param name="texte">Texte permettant d'identifier l'objet rechercher</param>
/// <param name="tri">Colonne du tableau sur lequel le tri s'effectue</param>
/// <returns></returns>
public IEnumerable < FormationDTO > GetFormationAnnulees ( bool? asc , int? numPage , int? parPAge , int ? idAgence , string texte , string tri )
public IEnumerable < FormationDTO > GetFormationAnnulees ( bool? asc , int? numPage , int? parPAge , long ? idAgence , string texte , string tri )
{
IEnumerable < Formation > formations ;
IEnumerable < FormationDTO > formationDTOs ;
@ -244,9 +236,6 @@ namespace EPAServeur.Services
. Include ( formation = > formation . Origine )
. Include ( formation = > formation . TypeFormation ) . Skip ( skip ) . Take ( take ) ;
if ( formations = = null )
return null ;
formationDTOs = formations . Where ( formation = > formation . Intitule . ToLower ( ) . Contains ( texte ) ) . Select ( formation = > GetFormationDTO ( formation ) ) ;
return formationDTOs ;
@ -262,7 +251,7 @@ namespace EPAServeur.Services
/// <param name="texte">Texte permettant d'identifier l'objet rechercher</param>
/// <param name="tri">Colonne du tableau sur lequel le tri s'effectue</param>
/// <returns></returns>
public async Task < IEnumerable < FormationDTO > > GetFormationAnnuleesAsync ( bool? asc , int? numPage , int? parPAge , int ? idAgence , string texte , string tri )
public async Task < IEnumerable < FormationDTO > > GetFormationAnnuleesAsync ( bool? asc , int? numPage , int? parPAge , long ? idAgence , string texte , string tri )
{
IEnumerable < Formation > formations ;
IEnumerable < FormationDTO > formationDTOs ;
@ -288,9 +277,6 @@ namespace EPAServeur.Services
. Include ( formation = > formation . Origine )
. Include ( formation = > formation . TypeFormation ) . Skip ( skip ) . Take ( take ) . ToListAsync ( ) ;
if ( formations = = null )
return null ;
formationDTOs = formations . Where ( formation = > formation . Intitule . ToLower ( ) . Contains ( texte ) ) . Select ( formation = > GetFormationDTO ( formation ) ) ;
return formationDTOs ;
@ -306,7 +292,7 @@ namespace EPAServeur.Services
/// <param name="texte">Texte permettant d'identifier l'objet rechercher</param>
/// <param name="tri">Colonne du tableau sur lequel le tri s'effectue</param>
/// <returns></returns>
public IEnumerable < FormationDTO > GetFormationRealisee ( bool? asc , int? numPage , int? parPAge , int ? idAgence , string texte , string tri )
public IEnumerable < FormationDTO > GetFormationRealisees ( bool? asc , int? numPage , int? parPAge , long ? idAgence , string texte , string tri )
{
IEnumerable < Formation > formations ;
IEnumerable < FormationDTO > formationDTOs ;
@ -340,10 +326,6 @@ namespace EPAServeur.Services
}
if ( formations = = null )
return null ;
formationDTOs = formations . Where ( formation = > formation . Intitule . ToLower ( ) . Contains ( texte ) ) . Select ( formation = > GetFormationDTO ( formation ) ) ;
return formationDTOs ;
@ -359,7 +341,7 @@ namespace EPAServeur.Services
/// <param name="texte">Texte permettant d'identifier l'objet rechercher</param>
/// <param name="tri">Colonne du tableau sur lequel le tri s'effectue</param>
/// <returns></returns>
public async Task < IEnumerable < FormationDTO > > GetFormationRealiseeAsync ( bool? asc , int? numPage , int? parPAge , int ? idAgence , string texte , string tri )
public async Task < IEnumerable < FormationDTO > > GetFormationRealisees Async ( bool? asc , int? numPage , int? parPAge , long ? idAgence , string texte , string tri )
{
IEnumerable < Formation > formations ;
IEnumerable < FormationDTO > formationDTOs ;
@ -392,10 +374,6 @@ namespace EPAServeur.Services
. Include ( formation = > formation . TypeFormation ) . Skip ( skip ) . Take ( take ) . ToListAsync ( ) ;
}
if ( formations = = null )
return null ;
formationDTOs = formations . Where ( formation = > formation . Intitule . ToLower ( ) . Contains ( texte ) ) . Select ( formation = > GetFormationDTO ( formation ) ) ;
return formationDTOs ;
@ -411,7 +389,7 @@ namespace EPAServeur.Services
/// <param name="texte">Texte permettant d'identifier l'objet rechercher</param>
/// <param name="tri">Colonne du tableau sur lequel le tri s'effectue</param>
/// <returns></returns>
public IEnumerable < FormationDTO > GetProchainesFormation ( bool? asc , int? numPage , int? parPAge , int ? idAgence , string texte , string tri )
public IEnumerable < FormationDTO > GetProchainesFormation ( bool? asc , int? numPage , int? parPAge , long ? idAgence , string texte , string tri )
{
IEnumerable < Formation > formations ;
IEnumerable < FormationDTO > formationDTOs ;
@ -442,9 +420,6 @@ namespace EPAServeur.Services
. Include ( formation = > formation . TypeFormation ) . Skip ( skip ) . Take ( take ) ;
}
if ( formations = = null )
return null ;
formationDTOs = formations . Where ( formation = > formation . Intitule . ToLower ( ) . Contains ( texte ) ) . Select ( formation = > GetFormationDTO ( formation ) ) ;
return formationDTOs ;
@ -460,7 +435,7 @@ namespace EPAServeur.Services
/// <param name="texte">Texte permettant d'identifier l'objet rechercher</param>
/// <param name="tri">Colonne du tableau sur lequel le tri s'effectue</param>
/// <returns></returns>
public async Task < IEnumerable < FormationDTO > > GetProchainesFormationAsync ( bool? asc , int? numPage , int? parPAge , int ? idAgence , string texte , string tri )
public async Task < IEnumerable < FormationDTO > > GetProchainesFormationAsync ( bool? asc , int? numPage , int? parPAge , long ? idAgence , string texte , string tri )
{
IEnumerable < Formation > formations ;
IEnumerable < FormationDTO > formationDTOs ;
@ -492,9 +467,6 @@ namespace EPAServeur.Services
. Include ( formation = > formation . TypeFormation ) . Skip ( skip ) . Take ( take ) . ToListAsync ( ) ;
}
if ( formations = = null )
return null ;
formationDTOs = formations . Where ( formation = > formation . Intitule . ToLower ( ) . Contains ( texte ) ) . Select ( formation = > GetFormationDTO ( formation ) ) ;
return formationDTOs ;
@ -511,9 +483,6 @@ namespace EPAServeur.Services
modeFormations = epContext . ModeFormation ;
if ( modeFormations = = null )
return null ;
modeFormationDTOs = modeFormations . Select ( modeFormation = > GetModeFormationDTO ( modeFormation ) ) ;
return modeFormationDTOs ;
@ -529,9 +498,6 @@ namespace EPAServeur.Services
IEnumerable < ModeFormationDTO > modeFormationDTOs ;
modeFormations = await epContext . ModeFormation . ToListAsync ( ) ;
if ( modeFormations = = null )
return null ;
modeFormationDTOs = modeFormations . Select ( modeFormation = > GetModeFormationDTO ( modeFormation ) ) ;
return modeFormationDTOs ;
@ -548,9 +514,6 @@ namespace EPAServeur.Services
origineFormations = epContext . OrigineFormation ;
if ( origineFormations = = null )
return null ;
origineFormationDTOs = origineFormations . Select ( origineFormation = > GetOrigineFormationDTO ( origineFormation ) ) ;
return origineFormationDTOs ;
@ -567,9 +530,6 @@ namespace EPAServeur.Services
origineFormations = await epContext . OrigineFormation . ToListAsync ( ) ;
if ( origineFormations = = null )
return null ;
origineFormationDTOs = origineFormations . Select ( origineFormation = > GetOrigineFormationDTO ( origineFormation ) ) ;
return origineFormationDTOs ;
@ -586,9 +546,6 @@ namespace EPAServeur.Services
statutFormations = epContext . StatutFormation ;
if ( statutFormations = = null )
return null ;
statutFormationDTOs = statutFormations . Select ( statutFormation = > GetStatutFormationDTO ( statutFormation ) ) ;
return statutFormationDTOs ;
@ -605,9 +562,6 @@ namespace EPAServeur.Services
statutFormations = await epContext . StatutFormation . ToListAsync ( ) ;
if ( statutFormations = = null )
return null ;
statutFormationDTOs = statutFormations . Select ( statutFormation = > GetStatutFormationDTO ( statutFormation ) ) ;
return statutFormationDTOs ;
@ -624,9 +578,6 @@ namespace EPAServeur.Services
typeFormations = epContext . TypeFormation ;
if ( typeFormations = = null )
return null ;
typeFormationDTOs = typeFormations . Select ( typeFormation = > GetTypeFormationDTO ( typeFormation ) ) ;
return typeFormationDTOs ;
@ -643,9 +594,6 @@ namespace EPAServeur.Services
typeFormations = await epContext . TypeFormation . ToListAsync ( ) ;
if ( typeFormations = = null )
return null ;
typeFormationDTOs = typeFormations . Select ( typeFormation = > GetTypeFormationDTO ( typeFormation ) ) ;
return typeFormationDTOs ;
@ -664,9 +612,7 @@ namespace EPAServeur.Services
Formation formation = new Formation ( ) ;
formation = SetFormation ( formation , formationDTO ) ;
if ( formation . Statut ! = null )
epContext . StatutFormation . Attach ( formation . Statut ) ;
epContext . StatutFormation . Attach ( formation . Statut ) ;
epContext . OrigineFormation . Attach ( formation . Origine ) ;
epContext . ModeFormation . Attach ( formation . ModeFormation ) ;
epContext . TypeFormation . Attach ( formation . TypeFormation ) ;
@ -684,15 +630,13 @@ namespace EPAServeur.Services
/// <returns></returns>
public async Task < FormationDTO > AddFormationAsync ( FormationDTO formationDTO )
{
if ( ! IsFormationValide ( formationDTO ) )
if ( ! await IsFormationValideAsync ( formationDTO ) )
throw new FormationInvalidException ( ) ;
Formation formation = new Formation ( ) ;
formation = SetFormation ( formation , formationDTO ) ;
if ( formation . Statut ! = null )
epContext . StatutFormation . Attach ( formation . Statut ) ;
epContext . StatutFormation . Attach ( formation . Statut ) ;
epContext . OrigineFormation . Attach ( formation . Origine ) ;
epContext . ModeFormation . Attach ( formation . ModeFormation ) ;
epContext . TypeFormation . Attach ( formation . TypeFormation ) ;
@ -714,10 +658,10 @@ namespace EPAServeur.Services
if ( ! IsFormationValide ( formationDTO ) )
throw new FormationInvalidException ( ) ;
if ( formationDTO = = null & & ! formationDTO . Id . HasValue & & formationDTO . Id . Value ! = idFormation )
if ( ! formationDTO . Id . HasValue | | formationDTO . Id . Value ! = idFormation )
throw new FormationIncompatibleIdException ( ) ;
Formation formation = epContext . Formation . Find ( idFormation ) ;
Formation formation = epContext . Formation . Find ( idFormation . Value ) ;
if ( formation = = null )
return null ;
@ -740,10 +684,10 @@ namespace EPAServeur.Services
if ( ! IsFormationValide ( formationDTO ) )
throw new FormationInvalidException ( ) ;
if ( formationDTO = = null & & ! formationDTO . Id . HasValue & & formationDTO . Id . Value ! = idFormation )
if ( ! formationDTO . Id . HasValue | | formationDTO . Id . Value ! = idFormation )
throw new FormationIncompatibleIdException ( ) ;
Formation formation = await epContext . Formation . FindAsync ( idFormation ) ;
Formation formation = await epContext . Formation . FindAsync ( idFormation . Value ) ;
if ( formation = = null )
return null ;
@ -761,14 +705,17 @@ namespace EPAServeur.Services
/// <returns></returns>
public FormationDTO DeleteFormationById ( long? idFormation )
{
Formation formation = epContext . Formation . Find ( idFormation ) ;
if ( ! idFormation . HasValue )
throw new FormationIncompatibleIdException ( ) ;
Formation formation = epContext . Formation . Find ( idFormation . Value ) ;
if ( formation = = null )
throw new FormationNotFoundException ( ) ;
epContext . Remove ( formation ) ;
epContext . SaveChanges ( ) ;
return GetFormationDTO ( formation ) ;
@ -781,7 +728,10 @@ namespace EPAServeur.Services
/// <returns></returns>
public async Task < FormationDTO > DeleteFormationByIdAsync ( long? idFormation )
{
Formation formation = await epContext . Formation . FindAsync ( idFormation ) ;
if ( ! idFormation . HasValue )
throw new FormationIncompatibleIdException ( ) ;
Formation formation = await epContext . Formation . FindAsync ( idFormation . Value ) ;
if ( formation = = null )
throw new FormationNotFoundException ( ) ;
@ -798,14 +748,40 @@ namespace EPAServeur.Services
/// <summary>
/// Vérifier si un objet FormationDTO est valide pour ajout ou mise à jour
/// </summary>
/// <remarks> Un objet FormationDTO est valide si aucune de ses propriétés n'est à null</remarks>
/// <remarks> Un objet FormationDTO est valide si aucune de ses propriétés n'est à null,si la date de début de la formation est inférieur à la date de fin et si le statut, l'origine,le mode et le type sont présents dans la base de données </remarks>
/// <param name="formation"></param>
/// <returns>true si l'objet est valide, false sinon</returns>
private bool IsFormationValide ( FormationDTO formation )
{
return ! ( formation = = null | | formation . IdAgence = = null | | formation . Intitule = = null | | formation . Organisme = = null ) ;
return ! ( formation = = null | | formation . Statut = = null | | formation . Mode = = null | | formation . Origine = = null | | formation . Type = = null
| | ! formation . IdAgence . HasValue | | formation . IdAgence = = 0
| | string . IsNullOrWhiteSpace ( formation . Intitule ) | | string . IsNullOrWhiteSpace ( formation . Organisme )
| | ! formation . DateDebut . HasValue | | ! formation . DateFin . HasValue | | formation . DateDebut . Value > formation . DateFin . Value
| | ! formation . Statut . Id . HasValue | | ! formation . Mode . Id . HasValue | | ! formation . Origine . Id . HasValue | | ! formation . Type . Id . HasValue
| | ! epContext . StatutFormation . Any ( statut = > statut . Id = = formation . Statut . Id . Value & & statut . Libelle = = formation . Statut . Libelle )
| | ! epContext . ModeFormation . Any ( mode = > mode . Id = = formation . Mode . Id . Value & & mode . Libelle = = formation . Mode . Libelle )
| | ! epContext . OrigineFormation . Any ( origine = > origine . Id = = formation . Origine . Id . Value & & origine . Libelle = = formation . Origine . Libelle )
| | ! epContext . TypeFormation . Any ( type = > type . Id = = formation . Type . Id . Value & & type . Libelle = = formation . Type . Libelle ) ) ;
}
/// <summary>
/// Vérifier si un objet FormationDTO est valide pour ajout ou mise à jour
/// </summary>
/// <remarks> Un objet FormationDTO est valide si aucune de ses propriétés n'est à null,si la date de début de la formation est inférieur à la date de fin et si le statut, l'origine,le mode et le type sont présents dans la base de données</remarks>
/// <param name="formation"></param>
/// <returns>true si l'objet est valide, false sinon</returns>
private async Task < bool > IsFormationValideAsync ( FormationDTO formation )
{
return ! ( formation = = null | | formation . Statut = = null | | formation . Mode = = null | | formation . Origine = = null | | formation . Type = = null
| | ! formation . IdAgence . HasValue | | formation . IdAgence = = 0
| | string . IsNullOrWhiteSpace ( formation . Intitule ) | | string . IsNullOrWhiteSpace ( formation . Organisme )
| | ! formation . DateDebut . HasValue | | ! formation . DateFin . HasValue | | formation . DateDebut . Value > formation . DateFin . Value
| | ! formation . Statut . Id . HasValue | | ! formation . Mode . Id . HasValue | | ! formation . Origine . Id . HasValue | | ! formation . Type . Id . HasValue
| | ! await epContext . StatutFormation . AnyAsync ( statut = > statut . Id = = formation . Statut . Id . Value & & statut . Libelle = = formation . Statut . Libelle )
| | ! await epContext . ModeFormation . AnyAsync ( mode = > mode . Id = = formation . Mode . Id . Value & & mode . Libelle = = formation . Mode . Libelle )
| | ! await epContext . OrigineFormation . AnyAsync ( origine = > origine . Id = = formation . Origine . Id . Value & & origine . Libelle = = formation . Origine . Libelle )
| | ! await epContext . TypeFormation . AnyAsync ( type = > type . Id = = formation . Type . Id . Value & & type . Libelle = = formation . Type . Libelle ) ) ;
}
#region Object to DTO
/// <summary>
/// Récupère un objet FormationDTO en fonction d'un objet Formation
@ -936,8 +912,6 @@ namespace EPAServeur.Services
/// <returns></returns>
private OrigineFormation GetOrigineFormation ( OrigineFormationDTO origineFormationDTO )
{
if ( origineFormationDTO = = null )
return null ;
OrigineFormation origineFormation = new OrigineFormation ( )
{
Id = origineFormationDTO . Id . Value ,
@ -953,8 +927,6 @@ namespace EPAServeur.Services
/// <returns></returns>
private StatutFormation GetStatutFormation ( StatutFormationDTO statutFormationDTO )
{
if ( statutFormationDTO = = null )
return null ;
StatutFormation statutFormation = new StatutFormation ( )
{
Id = statutFormationDTO . Id . Value ,
@ -970,8 +942,6 @@ namespace EPAServeur.Services
/// <returns></returns>
private ModeFormation GetModeFormation ( ModeFormationDTO modeFormationDTO )
{
if ( modeFormationDTO = = null )
return null ;
ModeFormation modeFormation = new ModeFormation ( )
{
Id = modeFormationDTO . Id . Value ,
@ -987,8 +957,6 @@ namespace EPAServeur.Services
/// <returns></returns>
private TypeFormation GetTypeFormation ( TypeFormationDTO typeFormationDTO )
{
if ( typeFormationDTO = = null )
return null ;
TypeFormation typeFormation = new TypeFormation ( )
{
Id = typeFormationDTO . Id . Value ,