Ajouts des tests unitaires pour la récupération des EP en cours et des EP signés

develop
Yanaël GRETTE 4 years ago
parent 9a0071a556
commit 213c6c851a
  1. 435
      EPAServeur.Tests/Services/EpInformationTests.cs
  2. 10
      EPAServeur/IServices/IEpInformationService.cs
  3. 20
      EPAServeur/Services/EpInformationService.cs

@ -0,0 +1,435 @@
using EPAServeur.Context;
using EPAServeur.IServices;
using EPAServeur.Services;
using IO.Swagger.ApiCollaborateur;
using IO.Swagger.DTO;
using Microsoft.EntityFrameworkCore;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EPAServeur.Tests.Services
{
[TestFixture]
public class EpInformationTests
{
#region
private EpContext context;
private ICollaborateurService collaborateurService;
#endregion
#region Setup
[SetUp]
public void Setup()
{
// Utilisation d'une base de données en mémoire
var optionBuider = new DbContextOptionsBuilder<EpContext>()
.UseInMemoryDatabase("server_ep_test")
.Options;
context = new EpContext(optionBuider);
context.Database.EnsureDeleted();
context.Database.EnsureCreated();
context.SaveChanges();
// Ajout du jeu de données pour les tests
DataSeeder.AddEp(context);
// Détache les entités du context car la base de données InMemory créé des conflits
// entre les clés primaires lors d'un Update ou d'un Insert
foreach (var entity in context.ChangeTracker.Entries())
{
entity.State = EntityState.Detached;
}
collaborateurService = new CollaborateurService(new CollaborateurApi(), context);
}
#endregion
#region Récupération des EP en cours
[TestCase(1, 5)] //Tours
[TestCase(2, 3)] //Orléans
[TestCase(3, 6)] // Paris
public async Task GetEpEnCours_UneBU(long? idBUs, int nbElements)
{
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPEnCours(new List<long?>{ idBUs }, true, 1, 15, "", "", null, null);
int count = await epInformationService.GetEPEnCoursCount(new List<long?> { idBUs }, true, 1, 15, "", "", null, null);
Assert.AreEqual(count, nbElements);
Assert.AreEqual(count, epInformationDTOs.Count());
foreach(EpInformationDTO ep in epInformationDTOs)
{
Assert.AreEqual(ep.Collaborateur.BusinessUnit.Id, idBUs);
}
}
public async Task GetEpEnCours_OrleansTours()
{
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPEnCours(new List<long?> { 1,2 }, true, 1, 15, "", "", null, null);
int count = await epInformationService.GetEPEnCoursCount(new List<long?> { 1, 2 }, true, 1, 15, "", "", null, null);
Assert.AreEqual(count, 8);
Assert.AreEqual(count, epInformationDTOs.Count());
long? bu;
foreach(EpInformationDTO ep in epInformationDTOs)
{
bu = ep.Collaborateur.BusinessUnit.Id;
Assert.IsTrue(bu == 1 || bu == 2);
}
}
//tri colonne
[TestCase("agence")]
[TestCase("collaborateur")]
[TestCase("referent")]
[TestCase("date")]
[TestCase("typeep")]
[TestCase("etatep")]
public async Task GetEpEnCours_TriColonneASC(string tri)
{
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPEnCours(new List<long?> { 1, 2 }, true, 1, 15, "", tri, null, null);
EpInformationDTO ep1, ep2;
int compare = 0;
for(int i = 0; i < epInformationDTOs.Count()-1; ++i)
{
ep1 = epInformationDTOs.ElementAt(i);
ep2 = epInformationDTOs.ElementAt(i+1);
switch(tri)
{
case "agence":
compare = ep1.Collaborateur.BusinessUnit.Nom.CompareTo(ep2.Collaborateur.BusinessUnit.Nom);
break;
case "collaborateur":
compare = (ep1.Collaborateur.Nom + " " + ep1.Collaborateur.Prenom).CompareTo((ep2.Collaborateur.Nom + " " + ep2.Collaborateur.Prenom));
break;
case "referent":
compare = (ep1.Referent.Nom + " " + ep1.Referent.Prenom).CompareTo((ep2.Referent.Nom + " " + ep2.Referent.Prenom));
break;
case "date":
compare = ep1.DatePrevisionnelle.Value.CompareTo(ep2.DatePrevisionnelle.Value);
break;
case "typeep":
compare = ep1.Type.CompareTo(ep2.Type);
break;
case "etatep":
compare = ep1.Statut.CompareTo(ep2.Statut);
break;
}
Assert.IsTrue(compare <= 0);
}
}
//tri colonne
[TestCase("agence")]
[TestCase("collaborateur")]
[TestCase("referent")]
[TestCase("date")]
[TestCase("typeep")]
[TestCase("etatep")]
public async Task GetEpEnCours_TriColonneDESC(string tri)
{
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPEnCours(new List<long?> { 1, 2 }, false, 1, 15, "", tri, null, null);
EpInformationDTO ep1, ep2;
int compare = 0;
for (int i = 0; i < epInformationDTOs.Count() - 1; ++i)
{
ep1 = epInformationDTOs.ElementAt(i);
ep2 = epInformationDTOs.ElementAt(i + 1);
switch (tri)
{
case "agence":
compare = ep1.Collaborateur.BusinessUnit.Nom.CompareTo(ep2.Collaborateur.BusinessUnit.Nom);
break;
case "collaborateur":
compare = (ep1.Collaborateur.Nom + " " + ep1.Collaborateur.Prenom).CompareTo(ep2.Collaborateur.Nom + " " + ep2.Collaborateur.Prenom);
break;
case "referent":
compare = (ep1.Referent.Nom + " " + ep1.Referent.Prenom).CompareTo((ep2.Referent.Nom + " " + ep2.Referent.Prenom));
break;
case "date":
compare = ep1.DatePrevisionnelle.Value.CompareTo(ep2.DatePrevisionnelle.Value);
break;
case "typeep":
compare = ep1.Type.CompareTo(ep2.Type);
break;
case "etatep":
compare = ep1.Statut.CompareTo(ep2.Statut);
break;
}
Assert.IsTrue(compare >= 0);
}
}
//tris date
[TestCase(01, 02, 2021)]
[TestCase(01, 03, 2021)]
[TestCase(01, 04, 2021)]
public async Task GetEpEnCours_TriDateD1(int j, int m, int a)
{
DateTime date = new DateTime(a, m, j);
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPEnCours(new List<long?> { 1, 2 }, true, 1, 15, "", "", date, null);
int count = await epInformationService.GetEPEnCoursCount(new List<long?> { 1, 2 }, true, 1, 15, "", "", date, null);
Assert.AreEqual(epInformationDTOs.Count(), count);
foreach(EpInformationDTO ep in epInformationDTOs)
{
Assert.IsTrue(date <= ep.DatePrevisionnelle.Value);
}
}
[TestCase(01, 04, 2021)]
[TestCase(01, 03, 2021)]
[TestCase(31, 01, 2021)]
public async Task GetEpEnCours_TriDateD2(int j, int m, int a)
{
DateTime date = new DateTime(a, m, j); IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPEnCours(new List<long?> { 1, 2 }, true, 1, 15, "", "", null, date);
int count = await epInformationService.GetEPEnCoursCount(new List<long?> { 1, 2 }, true, 1, 15, "", "", null, date);
Assert.AreEqual(epInformationDTOs.Count(), count);
foreach (EpInformationDTO ep in epInformationDTOs)
{
Assert.IsTrue(date >= ep.DatePrevisionnelle.Value);
}
}
[TestCase(01, 02, 2021, 28, 02, 2021)]
[TestCase(01, 02, 2021, 01, 04, 2021)]
[TestCase(15, 02, 2021, 15, 03, 2021)]
[TestCase(01, 01, 2021, 31, 01, 2021)]
[TestCase(01, 01, 2022, 31, 01, 2022)]
public async Task GetEpEnCours_TriDateD1D2(int j1, int m1, int a1, int j2, int m2, int a2)
{
DateTime date1 = new DateTime(a1, m1, j1);
DateTime date2 = new DateTime(a2, m2, j2);
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPEnCours(new List<long?> { 1, 2 }, true, 1, 15, "", "", date1, date2);
int count = await epInformationService.GetEPEnCoursCount(new List<long?> { 1, 2 }, true, 1, 15, "", "", date1, date2);
Assert.AreEqual(epInformationDTOs.Count(), count);
foreach (EpInformationDTO ep in epInformationDTOs)
{
Assert.IsTrue(condition: date1 <= ep.DatePrevisionnelle.Value);
Assert.IsTrue(date2 >= ep.DatePrevisionnelle.Value);
}
}
//Tri texte
[TestCase("")]
public async Task GetEpEnCours_texte(string texte)
{
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPEnCours(new List<long?> { 1, 2 }, true, 1, 15, texte, "", null, null);
int count = await epInformationService.GetEPEnCoursCount(new List<long?> { 1, 2 }, true, 1, 15, texte, "", null, null);
Assert.AreEqual(count, epInformationDTOs.Count());
foreach (EpInformationDTO ep in epInformationDTOs)
{
Assert.IsTrue((ep.Collaborateur.Nom + " " + ep.Collaborateur.Prenom).Contains(texte));
}
}
#endregion
#region Récupération des EP signés
[TestCase(1, 5)] //Tours
[TestCase(2, 4)] //Orléans
[TestCase(3, 5)] // Paris
public async Task GetEpSignes_UneBU(long? idBUs, int nbElements)
{
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPSignes(new List<long?>{ idBUs }, true, 1, 15, "", "", null, null);
int count = await epInformationService.GetEPSignesCount(new List<long?> { idBUs }, true, 1, 15, "", "", null, null);
Assert.AreEqual(count, nbElements);
Assert.AreEqual(count, epInformationDTOs.Count());
foreach(EpInformationDTO ep in epInformationDTOs)
{
Assert.AreEqual(ep.Collaborateur.BusinessUnit.Id, idBUs);
}
}
public async Task GetEpSignes_OrleansTours()
{
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPSignes(new List<long?> { 1,2 }, true, 1, 15, "", "", null, null);
int count = await epInformationService.GetEPSignesCount(new List<long?> { 1, 2 }, true, 1, 15, "", "", null, null);
Assert.AreEqual(count, 8);
Assert.AreEqual(count, epInformationDTOs.Count());
long? bu;
foreach(EpInformationDTO ep in epInformationDTOs)
{
bu = ep.Collaborateur.BusinessUnit.Id;
Assert.IsTrue(bu == 1 || bu == 2);
}
}
//tri colonne
[TestCase("agence")]
[TestCase("collaborateur")]
[TestCase("referent")]
[TestCase("date")]
[TestCase("typeep")]
public async Task GetEpSignes_TriColonneASC(string tri)
{
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPSignes(new List<long?> { 1, 2 }, true, 1, 15, "", tri, null, null);
EpInformationDTO ep1, ep2;
int compare = 0;
for(int i = 0; i < epInformationDTOs.Count()-1; ++i)
{
ep1 = epInformationDTOs.ElementAt(i);
ep2 = epInformationDTOs.ElementAt(i+1);
switch(tri)
{
case "agence":
compare = ep1.Collaborateur.BusinessUnit.Nom.CompareTo(ep2.Collaborateur.BusinessUnit.Nom);
break;
case "collaborateur":
compare = (ep1.Collaborateur.Nom + " " + ep1.Collaborateur.Prenom).CompareTo((ep2.Collaborateur.Nom + " " + ep2.Collaborateur.Prenom));
break;
case "referent":
compare = (ep1.Referent.Nom + " " + ep1.Referent.Prenom).CompareTo((ep2.Referent.Nom + " " + ep2.Referent.Prenom));
break;
case "date":
compare = ep1.DatePrevisionnelle.Value.CompareTo(ep2.DatePrevisionnelle.Value);
break;
case "typeep":
compare = ep1.Type.CompareTo(ep2.Type);
break;
}
Assert.IsTrue(compare <= 0);
}
}
//tri colonne
[TestCase("agence")]
[TestCase("collaborateur")]
[TestCase("referent")]
[TestCase("date")]
[TestCase("typeep")]
public async Task GetEpSignes_TriColonneDESC(string tri)
{
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPSignes(new List<long?> { 1, 2 }, false, 1, 15, "", tri, null, null);
EpInformationDTO ep1, ep2;
int compare = 0;
for (int i = 0; i < epInformationDTOs.Count() - 1; ++i)
{
ep1 = epInformationDTOs.ElementAt(i);
ep2 = epInformationDTOs.ElementAt(i + 1);
switch (tri)
{
case "agence":
compare = ep1.Collaborateur.BusinessUnit.Nom.CompareTo(ep2.Collaborateur.BusinessUnit.Nom);
break;
case "collaborateur":
compare = (ep1.Collaborateur.Nom + " " + ep1.Collaborateur.Prenom).CompareTo(ep2.Collaborateur.Nom + " " + ep2.Collaborateur.Prenom);
break;
case "referent":
compare = (ep1.Referent.Nom + " " + ep1.Referent.Prenom).CompareTo((ep2.Referent.Nom + " " + ep2.Referent.Prenom));
break;
case "date":
compare = ep1.DatePrevisionnelle.Value.CompareTo(ep2.DatePrevisionnelle.Value);
break;
case "typeep":
compare = ep1.Type.CompareTo(ep2.Type);
break;
case "etatep":
compare = ep1.Statut.CompareTo(ep2.Statut);
break;
}
Assert.IsTrue(compare >= 0);
}
}
//tris date
[TestCase(01, 01, 2018)]
[TestCase(01, 01, 2019)]
[TestCase(01, 01, 2020)]
[TestCase(01, 01, 2021)]
[TestCase(01, 01, 2022)]
public async Task GetEpSignes_TriDateD1(int j, int m, int a)
{
DateTime date = new DateTime(a, m, j);
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPSignes(new List<long?> { 1, 2 }, true, 1, 15, "", "", date, null);
int count = await epInformationService.GetEPSignesCount(new List<long?> { 1, 2 }, true, 1, 15, "", "", date, null);
Assert.AreEqual(epInformationDTOs.Count(), count);
foreach(EpInformationDTO ep in epInformationDTOs)
{
Assert.IsTrue(date <= ep.DatePrevisionnelle.Value);
}
}
[TestCase(31, 12, 2019)]
[TestCase(01, 01, 2019)]
[TestCase(31, 07, 2018)]
[TestCase(31, 07, 2017)]
public async Task GetEpSignes_TriDateD2(int j, int m, int a)
{
DateTime date = new DateTime(a, m, j); IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPSignes(new List<long?> { 1, 2 }, true, 1, 15, "", "", null, date);
int count = await epInformationService.GetEPSignesCount(new List<long?> { 1, 2 }, true, 1, 15, "", "", null, date);
Assert.AreEqual(epInformationDTOs.Count(), count);
foreach (EpInformationDTO ep in epInformationDTOs)
{
Assert.IsTrue(date >= ep.DatePrevisionnelle.Value);
}
}
[TestCase(01, 07, 2021, 31, 12, 2021)]
[TestCase(01, 09, 2018, 01, 12, 2019)]
[TestCase(01, 01, 2018, 31, 12, 2019)]
[TestCase(01, 01, 2017, 31, 12, 2017)]
public async Task GetEpSignes_TriDateD1D2(int j1, int m1, int a1, int j2, int m2, int a2)
{
DateTime date1 = new DateTime(a1, m1, j1);
DateTime date2 = new DateTime(a2, m2, j2);
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPSignes(new List<long?> { 1, 2 }, true, 1, 15, "", "", date1, date2);
int count = await epInformationService.GetEPSignesCount(new List<long?> { 1, 2 }, true, 1, 15, "", "", date1, date2);
Assert.AreEqual(epInformationDTOs.Count(), count);
foreach (EpInformationDTO ep in epInformationDTOs)
{
Assert.IsTrue(condition: date1 <= ep.DatePrevisionnelle.Value);
Assert.IsTrue(date2 >= ep.DatePrevisionnelle.Value);
}
}
//Tri texte
[TestCase("")]
public async Task GetEpSignes_texte(string texte)
{
IEpInformationService epInformationService = new EpInformationService(context, collaborateurService);
IEnumerable<EpInformationDTO> epInformationDTOs = await epInformationService.GetEPSignes(new List<long?> { 1, 2 }, true, 1, 15, texte, "", null, null);
int count = await epInformationService.GetEPSignesCount(new List<long?> { 1, 2 }, true, 1, 15, texte, "", null, null);
Assert.AreEqual(count, epInformationDTOs.Count());
foreach (EpInformationDTO ep in epInformationDTOs)
{
Assert.IsTrue((ep.Collaborateur.Nom + " " + ep.Collaborateur.Prenom).Contains(texte));
}
}
#endregion
}
}

@ -6,26 +6,26 @@ using System.Threading.Tasks;
namespace EPAServeur.IServices
{
interface IEpInformationService
public interface IEpInformationService
{
Task<IEnumerable<EpInformationDTO>> GetEPEnCours(List<long?> idBUs, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<IEnumerable<EpInformationDTO>> GetEPEnCoursCount(List<long?> idBUs, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<int> GetEPEnCoursCount(List<long?> idBUs, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<IEnumerable<EpInformationDTO>> GetEPEnCoursCollaborateurParticipant(Guid? idCollaborateur);
Task<IEnumerable<EpInformationDTO>> GetEPEnCoursReferent(Guid? idReferent, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<IEnumerable<EpInformationDTO>> GetEPEnCoursReferentCount(Guid? idReferent, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<int> GetEPEnCoursReferentCount(Guid? idReferent, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<IEnumerable<EpInformationDTO>> GetEPSignes(List<long?> idBUs, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<IEnumerable<EpInformationDTO>> GetEPSignesCount(List<long?> idBUs, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<int> GetEPSignesCount(List<long?> idBUs, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<IEnumerable<EpInformationDTO>> GetEPSignesCollaborateur(Guid? idCollaborateur);
Task<IEnumerable<EpInformationDTO>> GetEPSignesReferent(Guid? idReferent, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<IEnumerable<EpInformationDTO>> GetEPSignesReferentCount(Guid? idReferent, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<int> GetEPSignesReferentCount(Guid? idReferent, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<EpInformationDTO> GetProchainEPCollaborateur(Guid? idCollaborateur);

@ -1,4 +1,5 @@
using EPAServeur.IServices;
using EPAServeur.Context;
using EPAServeur.IServices;
using IO.Swagger.DTO;
using System;
using System.Collections.Generic;
@ -9,6 +10,15 @@ namespace EPAServeur.Services
{
public class EpInformationService : IEpInformationService
{
private EpContext context;
private ICollaborateurService collaborateurService;
public EpInformationService(EpContext context, ICollaborateurService collaborateurService)
{
this.context = context;
this.collaborateurService = collaborateurService;
}
public async Task<IEnumerable<EpInformationDTO>> GetEPEnCours(List<long?> idBUs, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin)
{
throw new NotImplementedException();
@ -19,7 +29,7 @@ namespace EPAServeur.Services
throw new NotImplementedException();
}
public async Task<IEnumerable<EpInformationDTO>> GetEPEnCoursCount(List<long?> idBUs, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin)
public async Task<int> GetEPEnCoursCount(List<long?> idBUs, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin)
{
throw new NotImplementedException();
}
@ -29,7 +39,7 @@ namespace EPAServeur.Services
throw new NotImplementedException();
}
public async Task<IEnumerable<EpInformationDTO>> GetEPEnCoursReferentCount(Guid? idReferent, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin)
public async Task<int> GetEPEnCoursReferentCount(Guid? idReferent, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin)
{
throw new NotImplementedException();
}
@ -44,7 +54,7 @@ namespace EPAServeur.Services
throw new NotImplementedException();
}
public async Task<IEnumerable<EpInformationDTO>> GetEPSignesCount(List<long?> idBUs, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin)
public async Task<int> GetEPSignesCount(List<long?> idBUs, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin)
{
throw new NotImplementedException();
}
@ -54,7 +64,7 @@ namespace EPAServeur.Services
throw new NotImplementedException();
}
public async Task<IEnumerable<EpInformationDTO>> GetEPSignesReferentCount(Guid? idReferent, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin)
public async Task<int> GetEPSignesReferentCount(Guid? idReferent, bool asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin)
{
throw new NotImplementedException();
}

Loading…
Cancel
Save