diff --git a/MediaTekDocuments/controller/FrmAuthController.cs b/MediaTekDocuments/controller/FrmAuthController.cs index e98af7d..c312b45 100644 --- a/MediaTekDocuments/controller/FrmAuthController.cs +++ b/MediaTekDocuments/controller/FrmAuthController.cs @@ -5,15 +5,30 @@ using System; namespace MediaTekDocuments.controller { + /// + /// Contrôleur pour la fenêtre d'authentification + /// class FrmAuthController { + /// + /// Objet d'accès aux données + /// private readonly Access access; + /// + /// Constructeur : récupère l'instance unique d'accès aux données + /// public FrmAuthController() { access = Access.GetInstance(); } + /// + /// Vérifie les identifiants de connexion + /// + /// Identifiant de l'utilisateur + /// Mot de passe de l'utilisateur + /// Objet Utilisateur si connexion réussie, null sinon public Utilisateur GetConnection(string login, string pwd) { return access.GetConnection(login, pwd); diff --git a/MediaTekDocuments/controller/FrmMediatekController.cs b/MediaTekDocuments/controller/FrmMediatekController.cs index 403c129..a70647a 100644 --- a/MediaTekDocuments/controller/FrmMediatekController.cs +++ b/MediaTekDocuments/controller/FrmMediatekController.cs @@ -98,46 +98,90 @@ namespace MediaTekDocuments.controller return access.CreerExemplaire(exemplaire); } + /// + /// Récupère les commandes d'un document + /// + /// Identifiant du document + /// Liste des commandes du document public List GetCommandesDocument(string idDocument) { return Access.GetInstance().GetCommandesDocument(idDocument); } + /// + /// Supprime une commande de document + /// + /// Objet CommandeDocument à supprimer + /// True si la suppression a pu se faire public bool SupprimerCommandeDocument(CommandeDocument commande) { return Access.GetInstance().DeleteCommande(commande.Id); } + /// + /// Récupère la liste des suivis + /// + /// Liste d'objets Categorie (suivi) public List GetAllSuivis() { return Access.GetInstance().GetAllSuivis(); } + /// + /// Crée une nouvelle commande de document + /// + /// Objet CommandeDocument à créer + /// True si la création a pu se faire public bool createCommande(CommandeDocument commande) { return access.CreerCommande(commande); } + /// + /// Récupère le prochain identifiant de commande + /// + /// Identifiant de commande formaté public string GetNextCommandeId() { return access.GetNextCommandeId(); } + /// + /// Met à jour l'état de suivi d'une commande + /// + /// Identifiant de la commande + /// Identifiant du nouvel état de suivi + /// True si la mise à jour a pu se faire public bool UpdateSuiviCommande(string idCommande, string idSuivi) { return access.UpdateSuiviCommande(idCommande, idSuivi); } + /// + /// Récupère les abonnements d'une revue + /// + /// Identifiant de la revue + /// Liste des abonnements de la revue public List GetAbonnements(string idRevue) { return access.GetAbonnements(idRevue); } + /// + /// Crée un nouvel abonnement + /// + /// Objet Abonnement à créer + /// True si la création a pu se faire public bool CreerAbonnement(Abonnement abonnement) { return access.CreerAbonnement(abonnement); } + /// + /// Supprime un abonnement + /// + /// Objet Abonnement à supprimer + /// True si la suppression a pu se faire public bool SupprimerAbonnement(Abonnement abonnement) { return access.SupprimerAbonnement(abonnement.Id); diff --git a/MediaTekDocuments/dal/Access.cs b/MediaTekDocuments/dal/Access.cs index 00c41c9..b068497 100644 --- a/MediaTekDocuments/dal/Access.cs +++ b/MediaTekDocuments/dal/Access.cs @@ -34,7 +34,8 @@ namespace MediaTekDocuments.dal private const string POST = "POST"; /// /// méthode HTTP pour update - /// + /// + private const string PUT = "PUT"; /// /// méthode HTTP pour delete @@ -68,6 +69,10 @@ namespace MediaTekDocuments.dal } } + /// + /// Création et retour de l'instance unique de la classe + /// + /// instance unique de la classe public static Access GetInstance() { if (instance == null) @@ -266,6 +271,11 @@ namespace MediaTekDocuments.dal return lesCommandes; } + /// + /// Supprime une commande + /// + /// ID de la commande à supprimer + /// True si la suppression a pu se faire public bool DeleteCommande(string idCommande) { @@ -282,12 +292,21 @@ namespace MediaTekDocuments.dal } } + /// + /// Récupère la liste des suivis + /// + /// Liste des suivis public List GetAllSuivis() { IEnumerable lesSuivis = TraitementRecup(GET, "suivi", null); return new List(lesSuivis); } + /// + /// Crée une commande de document + /// + /// Objet CommandeDocument à créer + /// True si la création a pu se faire public bool CreerCommande(CommandeDocument commande) { String jsonExemplaire = JsonConvert.SerializeObject(commande, new CustomDateTimeConverter()); @@ -303,6 +322,10 @@ namespace MediaTekDocuments.dal return false; } + /// + /// Récupère le prochain identifiant de commande + /// + /// Prochain ID de commande au format string public string GetNextCommandeId() { List result = TraitementRecup(GET, "maxcommande", null); @@ -321,6 +344,13 @@ namespace MediaTekDocuments.dal } return "0001"; } + + /// + /// Met à jour le suivi d'une commande + /// + /// ID de la commande + /// Nouvel ID de suivi + /// True si la mise à jour a pu se faire public bool UpdateSuiviCommande(string idCommande, string idSuivi) { String jsonSuivi = convertToJson("idSuivi", idSuivi); @@ -337,12 +367,22 @@ namespace MediaTekDocuments.dal } } + /// + /// Récupère les abonnements d'une revue + /// + /// ID de la revue + /// Liste des abonnements public List GetAbonnements(string idRevue) { string jsonIdRevue = convertToJson("id", idRevue); return TraitementRecup(GET, "commanderevue/" + jsonIdRevue, null); } + /// + /// Crée un abonnement + /// + /// Objet Abonnement à créer + /// True si la création a pu se faire public bool CreerAbonnement(Abonnement abonnement) { string jsonAbonnement = JsonConvert.SerializeObject(abonnement, new CustomDateTimeConverter()); @@ -359,6 +399,11 @@ namespace MediaTekDocuments.dal } } + /// + /// Supprime un abonnement + /// + /// ID de l'abonnement à supprimer + /// True si la suppression a pu se faire public bool SupprimerAbonnement(string idAbonnement) { string jsonId = convertToJson("id", idAbonnement); @@ -373,6 +418,12 @@ namespace MediaTekDocuments.dal } } + /// + /// Tente de connecter un utilisateur + /// + /// Login de l'utilisateur + /// Mot de passe de l'utilisateur + /// Objet Utilisateur si connecté, null sinon public Utilisateur GetConnection(string login, string pwd) { Dictionary loginInfo = new Dictionary diff --git a/MediaTekDocuments/manager/ApiRest.cs b/MediaTekDocuments/manager/ApiRest.cs index 261fe9e..3e75960 100644 --- a/MediaTekDocuments/manager/ApiRest.cs +++ b/MediaTekDocuments/manager/ApiRest.cs @@ -43,7 +43,7 @@ namespace MediaTekDocuments.manager /// /// adresse de l'api /// chaîne d'authentificatio (login:pwd) - /// + /// Instance unique de la classe ApiRest public static ApiRest GetInstance(String uriApi, String authenticationString) { if(instance == null) diff --git a/MediaTekDocuments/model/Abonnement.cs b/MediaTekDocuments/model/Abonnement.cs index 5fd6ee4..a3ff78c 100644 --- a/MediaTekDocuments/model/Abonnement.cs +++ b/MediaTekDocuments/model/Abonnement.cs @@ -1,15 +1,41 @@ -using System; +using System; namespace MediaTekDocuments.model { + /// + /// Classe métier Abonnement (contient les informations sur un abonnement à une revue) + /// public class Abonnement { + /// + /// Obtient ou définit l'identifiant de l'abonnement + /// public string Id { get; set; } + /// + /// Obtient ou définit la date de la commande + /// public DateTime DateCommande { get; set; } + /// + /// Obtient ou définit le montant de l'abonnement + /// public double Montant { get; set; } + /// + /// Obtient ou définit la date de fin de l'abonnement + /// public DateTime DateFinAbonnement { get; set; } + /// + /// Obtient ou définit l'identifiant de la revue associée + /// public string IdRevue { get; set; } + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant de l'abonnement + /// Date de la commande + /// Montant de l'abonnement + /// Date de fin de l'abonnement + /// Identifiant de la revue associée public Abonnement(string id, DateTime dateCommande, double montant, DateTime dateFinAbonnement, string idRevue) { this.Id = id; diff --git a/MediaTekDocuments/model/Categorie.cs b/MediaTekDocuments/model/Categorie.cs index 9586515..fdd3748 100644 --- a/MediaTekDocuments/model/Categorie.cs +++ b/MediaTekDocuments/model/Categorie.cs @@ -1,4 +1,4 @@ - + namespace MediaTekDocuments.model { /// @@ -6,9 +6,20 @@ namespace MediaTekDocuments.model /// public class Categorie { + /// + /// Obtient l'identifiant de la catégorie + /// public string Id { get; } + /// + /// Obtient le libellé de la catégorie + /// public string Libelle { get; } + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant de la catégorie + /// Libellé de la catégorie public Categorie(string id, string libelle) { this.Id = id; @@ -18,7 +29,7 @@ namespace MediaTekDocuments.model /// /// Récupération du libellé pour l'affichage dans les combos /// - /// Libelle + /// Le libellé de la catégorie public override string ToString() { return this.Libelle; diff --git a/MediaTekDocuments/model/CommandeDocument.cs b/MediaTekDocuments/model/CommandeDocument.cs index cc3731c..c3c18b2 100644 --- a/MediaTekDocuments/model/CommandeDocument.cs +++ b/MediaTekDocuments/model/CommandeDocument.cs @@ -1,17 +1,51 @@ -using System; +using System; namespace MediaTekDocuments.model { + /// + /// Classe métier CommandeDocument (contient les informations sur une commande de livres ou de DVD) + /// public class CommandeDocument { + /// + /// Obtient ou définit l'identifiant de la commande + /// public string Id { get; set; } + /// + /// Obtient ou définit la date de la commande + /// public DateTime DateCommande { get; set; } + /// + /// Obtient ou définit le montant de la commande + /// public double Montant { get; set; } + /// + /// Obtient ou définit le nombre d'exemplaires commandés + /// public int NbExemplaire { get; set; } + /// + /// Obtient ou définit l'identifiant du livre ou DVD associé + /// public string IdLivreDvd { get; set; } + /// + /// Obtient ou définit l'identifiant de l'état de suivi de la commande + /// public int IdSuivi { get; set; } + /// + /// Obtient ou définit le libellé de l'état de suivi + /// public string LibelleSuivi { get; set; } + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant de la commande + /// Date de la commande + /// Montant de la commande + /// Nombre d'exemplaires + /// Identifiant du document (livre ou dvd) + /// Identifiant du suivi + /// Libellé du suivi public CommandeDocument(string id, DateTime dateCommande, double montant, int nbExemplaire, string idLivreDvd, int idSuivi, string libelleSuivi) { this.Id = id; diff --git a/MediaTekDocuments/model/Document.cs b/MediaTekDocuments/model/Document.cs index 6432acb..53d1674 100644 --- a/MediaTekDocuments/model/Document.cs +++ b/MediaTekDocuments/model/Document.cs @@ -1,4 +1,4 @@ - + namespace MediaTekDocuments.model { /// @@ -6,16 +6,55 @@ namespace MediaTekDocuments.model /// public class Document { + /// + /// Obtient l'identifiant du document + /// public string Id { get; } + /// + /// Obtient le titre du document + /// public string Titre { get; } + /// + /// Obtient l'URL de l'image du document + /// public string Image { get; } + /// + /// Obtient l'identifiant du genre du document + /// public string IdGenre { get; } + /// + /// Obtient le libellé du genre du document + /// public string Genre { get; } + /// + /// Obtient l'identifiant du public du document + /// public string IdPublic { get; } + /// + /// Obtient le libellé du public du document + /// public string Public { get; } + /// + /// Obtient l'identifiant du rayon du document + /// public string IdRayon { get; } + /// + /// Obtient le libellé du rayon du document + /// public string Rayon { get; } + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant du document + /// Titre du document + /// URL de l'image du document + /// Identifiant du genre + /// Libellé du genre + /// Identifiant du public + /// Libellé du public + /// Identifiant du rayon + /// Libellé du rayon public Document(string id, string titre, string image, string idGenre, string genre, string idPublic, string lePublic, string idRayon, string rayon) { Id = id; diff --git a/MediaTekDocuments/model/Dvd.cs b/MediaTekDocuments/model/Dvd.cs index c9bf374..74a8982 100644 --- a/MediaTekDocuments/model/Dvd.cs +++ b/MediaTekDocuments/model/Dvd.cs @@ -1,4 +1,4 @@ - + namespace MediaTekDocuments.model { /// @@ -6,10 +6,34 @@ namespace MediaTekDocuments.model /// public class Dvd : LivreDvd { + /// + /// Obtient la durée du DVD + /// public int Duree { get; } + /// + /// Obtient le réalisateur du DVD + /// public string Realisateur { get; } + /// + /// Obtient le synopsis du DVD + /// public string Synopsis { get; } + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant du DVD + /// Titre du DVD + /// URL de l'image du DVD + /// Durée du DVD + /// Réalisateur du DVD + /// Synopsis du DVD + /// Identifiant du genre + /// Libellé du genre + /// Identifiant du public + /// Libellé du public + /// Identifiant du rayon + /// Libellé du rayon public Dvd(string id, string titre, string image, int duree, string realisateur, string synopsis, string idGenre, string genre, string idPublic, string lePublic, string idRayon, string rayon) : base(id, titre, image, idGenre, genre, idPublic, lePublic, idRayon, rayon) diff --git a/MediaTekDocuments/model/Etat.cs b/MediaTekDocuments/model/Etat.cs index fa1f105..277d0a0 100644 --- a/MediaTekDocuments/model/Etat.cs +++ b/MediaTekDocuments/model/Etat.cs @@ -1,4 +1,4 @@ - + namespace MediaTekDocuments.model { /// @@ -6,9 +6,20 @@ namespace MediaTekDocuments.model /// public class Etat { + /// + /// Obtient ou définit l'identifiant de l'état + /// public string Id { get; set; } + /// + /// Obtient ou définit le libellé de l'état + /// public string Libelle { get; set; } + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant de l'état + /// Libellé de l'état public Etat(string id, string libelle) { this.Id = id; diff --git a/MediaTekDocuments/model/Exemplaire.cs b/MediaTekDocuments/model/Exemplaire.cs index 515a186..6a15354 100644 --- a/MediaTekDocuments/model/Exemplaire.cs +++ b/MediaTekDocuments/model/Exemplaire.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace MediaTekDocuments.model { @@ -7,12 +7,35 @@ namespace MediaTekDocuments.model /// public class Exemplaire { + /// + /// Obtient ou définit le numéro de l'exemplaire + /// public int Numero { get; set; } + /// + /// Obtient ou définit l'URL de la photo de l'exemplaire + /// public string Photo { get; set; } + /// + /// Obtient ou définit la date d'achat de l'exemplaire + /// public DateTime DateAchat { get; set; } + /// + /// Obtient ou définit l'identifiant de l'état de l'exemplaire + /// public string IdEtat { get; set; } + /// + /// Obtient ou définit l'identifiant du document associé + /// public string Id { get; set; } + /// + /// Initialise une nouvelle instance de la classe + /// + /// Numéro de l'exemplaire + /// Date d'achat + /// URL de la photo + /// Identifiant de l'état + /// Identifiant du document public Exemplaire(int numero, DateTime dateAchat, string photo, string idEtat, string idDocument) { this.Numero = numero; diff --git a/MediaTekDocuments/model/Genre.cs b/MediaTekDocuments/model/Genre.cs index 183422f..03220a9 100644 --- a/MediaTekDocuments/model/Genre.cs +++ b/MediaTekDocuments/model/Genre.cs @@ -1,4 +1,4 @@ - + namespace MediaTekDocuments.model { /// @@ -6,6 +6,11 @@ namespace MediaTekDocuments.model /// public class Genre : Categorie { + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant du genre + /// Libellé du genre public Genre(string id, string libelle) : base(id, libelle) { } diff --git a/MediaTekDocuments/model/Livre.cs b/MediaTekDocuments/model/Livre.cs index 4d6f8df..44c676b 100644 --- a/MediaTekDocuments/model/Livre.cs +++ b/MediaTekDocuments/model/Livre.cs @@ -1,4 +1,4 @@ - + namespace MediaTekDocuments.model { /// @@ -6,10 +6,34 @@ namespace MediaTekDocuments.model /// public class Livre : LivreDvd { + /// + /// Obtient l'ISBN du livre + /// public string Isbn { get; } + /// + /// Obtient l'auteur du livre + /// public string Auteur { get; } + /// + /// Obtient la collection du livre + /// public string Collection { get; } + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant du livre + /// Titre du livre + /// URL de l'image du livre + /// ISBN du livre + /// Auteur du livre + /// Collection du livre + /// Identifiant du genre + /// Libellé du genre + /// Identifiant du public + /// Libellé du public + /// Identifiant du rayon + /// Libellé du rayon public Livre(string id, string titre, string image, string isbn, string auteur, string collection, string idGenre, string genre, string idPublic, string lePublic, string idRayon, string rayon) : base(id, titre, image, idGenre, genre, idPublic, lePublic, idRayon, rayon) diff --git a/MediaTekDocuments/model/LivreDvd.cs b/MediaTekDocuments/model/LivreDvd.cs index ff616c5..e79122e 100644 --- a/MediaTekDocuments/model/LivreDvd.cs +++ b/MediaTekDocuments/model/LivreDvd.cs @@ -1,4 +1,4 @@ - + namespace MediaTekDocuments.model { /// @@ -6,6 +6,18 @@ namespace MediaTekDocuments.model /// public abstract class LivreDvd : Document { + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant du document + /// Titre du document + /// URL de l'image du document + /// Identifiant du genre + /// Libellé du genre + /// Identifiant du public + /// Libellé du public + /// Identifiant du rayon + /// Libellé du rayon protected LivreDvd(string id, string titre, string image, string idGenre, string genre, string idPublic, string lePublic, string idRayon, string rayon) : base(id, titre, image, idGenre, genre, idPublic, lePublic, idRayon, rayon) diff --git a/MediaTekDocuments/model/Public.cs b/MediaTekDocuments/model/Public.cs index beb7bf7..2fddab5 100644 --- a/MediaTekDocuments/model/Public.cs +++ b/MediaTekDocuments/model/Public.cs @@ -1,4 +1,4 @@ - + namespace MediaTekDocuments.model { /// @@ -6,6 +6,11 @@ namespace MediaTekDocuments.model /// public class Public : Categorie { + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant du public + /// Libellé du public public Public(string id, string libelle) : base(id, libelle) { } diff --git a/MediaTekDocuments/model/Rayon.cs b/MediaTekDocuments/model/Rayon.cs index 5cc8629..b436f78 100644 --- a/MediaTekDocuments/model/Rayon.cs +++ b/MediaTekDocuments/model/Rayon.cs @@ -1,4 +1,4 @@ - + namespace MediaTekDocuments.model { /// @@ -6,6 +6,11 @@ namespace MediaTekDocuments.model /// public class Rayon : Categorie { + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant du rayon + /// Libellé du rayon public Rayon(string id, string libelle) : base(id, libelle) { } diff --git a/MediaTekDocuments/model/Revue.cs b/MediaTekDocuments/model/Revue.cs index 07bb3dd..ae12803 100644 --- a/MediaTekDocuments/model/Revue.cs +++ b/MediaTekDocuments/model/Revue.cs @@ -1,4 +1,4 @@ - + namespace MediaTekDocuments.model { /// @@ -6,9 +6,29 @@ namespace MediaTekDocuments.model /// public class Revue : Document { + /// + /// Obtient ou définit la périodicité de la revue + /// public string Periodicite { get; set; } + /// + /// Obtient ou définit le délai de mise à disposition de la revue + /// public int DelaiMiseADispo { get; set; } + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant de la revue + /// Titre de la revue + /// URL de l'image de la revue + /// Identifiant du genre + /// Libellé du genre + /// Identifiant du public + /// Libellé du public + /// Identifiant du rayon + /// Libellé du rayon + /// Périodicité + /// Délai de mise à disposition public Revue(string id, string titre, string image, string idGenre, string genre, string idPublic, string lePublic, string idRayon, string rayon, string periodicite, int delaiMiseADispo) diff --git a/MediaTekDocuments/model/Utilisateur.cs b/MediaTekDocuments/model/Utilisateur.cs index 5e9e356..4054952 100644 --- a/MediaTekDocuments/model/Utilisateur.cs +++ b/MediaTekDocuments/model/Utilisateur.cs @@ -1,12 +1,42 @@ -public class Utilisateur +/// +/// Classe métier Utilisateur (représente un utilisateur de l'application) +/// +public class Utilisateur { + /// + /// Obtient ou définit l'identifiant technique de l'utilisateur + /// public string Id { get; set; } + /// + /// Obtient ou définit l'identifiant de connexion de l'utilisateur + /// public string Identifiant { get; set; } + /// + /// Obtient ou définit le nom de l'utilisateur + /// public string Nom { get; set; } + /// + /// Obtient ou définit le prénom de l'utilisateur + /// public string Prenom { get; set; } + /// + /// Obtient ou définit l'identifiant du service de l'utilisateur + /// public int IdService { get; set; } + /// + /// Obtient ou définit le libellé du service de l'utilisateur + /// public string LibelleService { get; set; } + /// + /// Initialise une nouvelle instance de la classe + /// + /// Identifiant technique + /// Identifiant de connexion + /// Nom + /// Prénom + /// Identifiant du service + /// Libellé du service public Utilisateur(string id, string identifiant, string nom, string prenom, int idService, string libelleService) { this.Id = id; diff --git a/MediaTekDocuments/view/FrmAuth.cs b/MediaTekDocuments/view/FrmAuth.cs index e31ff7c..9a820dc 100644 --- a/MediaTekDocuments/view/FrmAuth.cs +++ b/MediaTekDocuments/view/FrmAuth.cs @@ -10,23 +10,49 @@ using System.IO; namespace MediaTekDocuments.view { + /// + /// Fenêtre d'authentification de l'application. + /// Permet à l'utilisateur de se connecter en saisissant ses identifiants. + /// public partial class FrmAuth : Form { + /// + /// Instance du contrôleur pour la gestion de l'authentification. + /// private readonly FrmAuthController controller; + + /// + /// Obtient l'utilisateur authentifié. + /// public Utilisateur user { get; private set; } + /// + /// Initialise une nouvelle instance de la classe . + /// Configure le contrôleur d'authentification. + /// public FrmAuth() { InitializeComponent(); this.controller = new FrmAuthController(); } + /// + /// Gère l'événement de chargement du formulaire. + /// + /// La source de l'événement. + /// Les données de l'événement. private void FrmAuth_Load(object sender, EventArgs e) { // Méthode laissée vide intentionnellement. // Aucun traitement spécifique n'est requis au chargement du formulaire d'authentification. } + /// + /// Gère le clic sur le bouton de connexion. + /// Vérifie les identifiants et le service de l'utilisateur pour autoriser l'accès. + /// + /// La source de l'événement. + /// Les données de l'événement. private void btnLogin_Click(object sender, EventArgs e) { string identifiant = txtIdentifiant.Text; diff --git a/MediaTekDocuments/view/FrmMediatek.cs b/MediaTekDocuments/view/FrmMediatek.cs index 0e7b8a7..940dfbc 100644 --- a/MediaTekDocuments/view/FrmMediatek.cs +++ b/MediaTekDocuments/view/FrmMediatek.cs @@ -17,18 +17,51 @@ namespace MediaTekDocuments.view public partial class FrmMediatek : Form { #region Commun + /// + /// Instance du contrôleur pour la gestion des opérations de la médiathèque. + /// private readonly FrmMediatekController controller; + + /// + /// Utilisateur actuellement connecté à l'application. + /// private readonly Utilisateur user; + + /// + /// BindingSource lié à la liste des genres. + /// private readonly BindingSource bdgGenres = new BindingSource(); + + /// + /// BindingSource lié à la liste des types de publics. + /// private readonly BindingSource bdgPublics = new BindingSource(); + + /// + /// BindingSource lié à la liste des rayons. + /// private readonly BindingSource bdgRayons = new BindingSource(); + + /// + /// BindingSource lié à la liste des étapes de suivi des commandes. + /// private readonly BindingSource bdgSuivis = new BindingSource(); + + /// + /// BindingSource lié à la liste des abonnements. + /// private readonly BindingSource bdgAbonnements = new BindingSource(); + + /// + /// Liste locale des abonnements pour l'affichage et les filtres. + /// private List lesAbonnements = new List(); /// - /// Constructeur : création du contrôleur lié à ce formulaire + /// Initialise une nouvelle instance de la classe . + /// Configure le contrôleur, l'utilisateur et initialise l'affichage selon les droits. /// + /// L'utilisateur connecté. public FrmMediatek(Utilisateur user) { InitializeComponent(); @@ -73,15 +106,22 @@ namespace MediaTekDocuments.view #endregion #region Onglet Livres + /// + /// BindingSource lié à la liste des livres. + /// private readonly BindingSource bdgLivresListe = new BindingSource(); + + /// + /// Liste locale des livres pour l'affichage et les filtres. + /// private List lesLivres = new List(); /// /// Ouverture de l'onglet Livres : /// appel des méthodes pour remplir le datagrid des livres et des combos (genre, rayon, public) /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void TabLivres_Enter(object sender, EventArgs e) { lesLivres = controller.GetAllLivres(); @@ -111,6 +151,10 @@ namespace MediaTekDocuments.view RemplirDgvListeLivre2(livres); } + /// + /// Remplit le second DataGridView des livres (utilisé pour les commandes) avec la liste reçue en paramètre. + /// + /// Liste des livres à afficher. private void RemplirDgvListeLivre2(List livres) { if (tabOngletsApplication.TabPages.Contains(tabCommandeLivres)) @@ -136,8 +180,8 @@ namespace MediaTekDocuments.view /// Recherche et affichage du livre dont on a saisi le numéro. /// Si non trouvé, affichage d'un MessageBox. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void BtnLivresNumRecherche_Click(object sender, EventArgs e) { if (!txbLivresNumRecherche.Text.Equals("")) @@ -165,12 +209,12 @@ namespace MediaTekDocuments.view } /// - /// Recherche et affichage des livres dont le titre matche acec la saisie. + /// Recherche et affichage des livres dont le titre matche avec la saisie. /// Cette procédure est exécutée à chaque ajout ou suppression de caractère /// dans le textBox de saisie. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void TxbLivresTitreRecherche_TextChanged(object sender, EventArgs e) { if (!txbLivresTitreRecherche.Text.Equals("")) @@ -238,10 +282,10 @@ namespace MediaTekDocuments.view } /// - /// Filtre sur le genre + /// Filtre sur le genre. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void CbxLivresGenres_SelectedIndexChanged(object sender, EventArgs e) { if (cbxLivresGenres.SelectedIndex >= 0) @@ -257,10 +301,10 @@ namespace MediaTekDocuments.view } /// - /// Filtre sur la catégorie de public + /// Filtre sur la catégorie de public. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void CbxLivresPublics_SelectedIndexChanged(object sender, EventArgs e) { if (cbxLivresPublics.SelectedIndex >= 0) @@ -276,10 +320,10 @@ namespace MediaTekDocuments.view } /// - /// Filtre sur le rayon + /// Filtre sur le rayon. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void CbxLivresRayons_SelectedIndexChanged(object sender, EventArgs e) { if (cbxLivresRayons.SelectedIndex >= 0) @@ -295,11 +339,11 @@ namespace MediaTekDocuments.view } /// - /// Sur la sélection d'une ligne ou cellule dans le grid - /// affichage des informations du livre + /// Sur la sélection d'une ligne ou cellule dans le grid, + /// affichage des informations du livre. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void DgvLivresListe_SelectionChanged(object sender, EventArgs e) { if (dgvLivresListe.CurrentCell != null) @@ -321,30 +365,30 @@ namespace MediaTekDocuments.view } /// - /// Sur le clic du bouton d'annulation, affichage de la liste complète des livres + /// Sur le clic du bouton d'annulation, affichage de la liste complète des livres. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void BtnLivresAnnulPublics_Click(object sender, EventArgs e) { RemplirLivresListeComplete(); } /// - /// Sur le clic du bouton d'annulation, affichage de la liste complète des livres + /// Sur le clic du bouton d'annulation, affichage de la liste complète des livres. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void BtnLivresAnnulRayons_Click(object sender, EventArgs e) { RemplirLivresListeComplete(); } /// - /// Sur le clic du bouton d'annulation, affichage de la liste complète des livres + /// Sur le clic du bouton d'annulation, affichage de la liste complète des livres. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void BtnLivresAnnulGenres_Click(object sender, EventArgs e) { RemplirLivresListeComplete(); @@ -411,7 +455,14 @@ namespace MediaTekDocuments.view #endregion #region Onglet Dvd + /// + /// BindingSource lié à la liste des DVD. + /// private readonly BindingSource bdgDvdListe = new BindingSource(); + + /// + /// Liste locale des DVD pour l'affichage et les filtres. + /// private List lesDvd = new List(); /// @@ -475,8 +526,8 @@ namespace MediaTekDocuments.view /// Recherche et affichage du Dvd dont on a saisi le numéro. /// Si non trouvé, affichage d'un MessageBox. /// - /// - /// + /// Source de l'événement. + /// Informations sur l'événement. private void btnDvdNumRecherche_Click(object sender, EventArgs e) { if (!txbDvdNumRecherche.Text.Equals("")) @@ -508,8 +559,8 @@ namespace MediaTekDocuments.view /// Cette procédure est exécutée à chaque ajout ou suppression de caractère /// dans le textBox de saisie. /// - /// - /// + /// Source de l'événement. + /// Informations sur l'événement. private void txbDvdTitreRecherche_TextChanged(object sender, EventArgs e) { if (!txbDvdTitreRecherche.Text.Equals("")) @@ -536,7 +587,7 @@ namespace MediaTekDocuments.view /// /// Affichage des informations du dvd sélectionné /// - /// le dvd + /// Le dvd dont les informations doivent être affichées. private void AfficheDvdInfos(Dvd dvd) { txbDvdRealisateur.Text = dvd.Realisateur; @@ -577,10 +628,10 @@ namespace MediaTekDocuments.view } /// - /// Filtre sur le genre + /// Filtre sur le genre. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void cbxDvdGenres_SelectedIndexChanged(object sender, EventArgs e) { if (cbxDvdGenres.SelectedIndex >= 0) @@ -596,10 +647,10 @@ namespace MediaTekDocuments.view } /// - /// Filtre sur la catégorie de public + /// Filtre sur la catégorie de public. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void cbxDvdPublics_SelectedIndexChanged(object sender, EventArgs e) { if (cbxDvdPublics.SelectedIndex >= 0) @@ -615,10 +666,10 @@ namespace MediaTekDocuments.view } /// - /// Filtre sur le rayon + /// Filtre sur le rayon. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void cbxDvdRayons_SelectedIndexChanged(object sender, EventArgs e) { if (cbxDvdRayons.SelectedIndex >= 0) @@ -634,11 +685,11 @@ namespace MediaTekDocuments.view } /// - /// Sur la sélection d'une ligne ou cellule dans le grid - /// affichage des informations du dvd + /// Sur la sélection d'une ligne ou cellule dans le grid, + /// affichage des informations du dvd. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void dgvDvdListe_SelectionChanged(object sender, EventArgs e) { if (dgvDvdListe.CurrentCell != null) @@ -660,30 +711,30 @@ namespace MediaTekDocuments.view } /// - /// Sur le clic du bouton d'annulation, affichage de la liste complète des Dvd + /// Sur le clic du bouton d'annulation, affichage de la liste complète des Dvd. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void btnDvdAnnulPublics_Click(object sender, EventArgs e) { RemplirDvdListeComplete(); } /// - /// Sur le clic du bouton d'annulation, affichage de la liste complète des Dvd + /// Sur le clic du bouton d'annulation, affichage de la liste complète des Dvd. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void btnDvdAnnulRayons_Click(object sender, EventArgs e) { RemplirDvdListeComplete(); } /// - /// Sur le clic du bouton d'annulation, affichage de la liste complète des Dvd + /// Sur le clic du bouton d'annulation, affichage de la liste complète des Dvd. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void btnDvdAnnulGenres_Click(object sender, EventArgs e) { RemplirDvdListeComplete(); @@ -750,15 +801,22 @@ namespace MediaTekDocuments.view #endregion #region Onglet Revues + /// + /// BindingSource lié à la liste des revues. + /// private readonly BindingSource bdgRevuesListe = new BindingSource(); + + /// + /// Liste locale des revues pour l'affichage et les filtres. + /// private List lesRevues = new List(); /// /// Ouverture de l'onglet Revues : /// appel des méthodes pour remplir le datagrid des revues et des combos (genre, rayon, public) /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void tabRevues_Enter(object sender, EventArgs e) { lesRevues = controller.GetAllRevues(); @@ -771,7 +829,7 @@ namespace MediaTekDocuments.view /// /// Remplit le dategrid avec la liste reçue en paramètre /// - /// + /// liste de revues private void RemplirRevuesListe(List revues) { bdgRevuesListe.DataSource = revues; @@ -789,8 +847,8 @@ namespace MediaTekDocuments.view /// Recherche et affichage de la revue dont on a saisi le numéro. /// Si non trouvé, affichage d'un MessageBox. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void btnRevuesNumRecherche_Click(object sender, EventArgs e) { if (!txbRevuesNumRecherche.Text.Equals("")) @@ -818,12 +876,12 @@ namespace MediaTekDocuments.view } /// - /// Recherche et affichage des revues dont le titre matche acec la saisie. + /// Recherche et affichage des revues dont le titre matche avec la saisie. /// Cette procédure est exécutée à chaque ajout ou suppression de caractère /// dans le textBox de saisie. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void txbRevuesTitreRecherche_TextChanged(object sender, EventArgs e) { if (!txbRevuesTitreRecherche.Text.Equals("")) @@ -848,7 +906,7 @@ namespace MediaTekDocuments.view } /// - /// Affichage des informations de la revue sélectionné + /// Affichage des informations de la revue sélectionnée /// /// la revue private void AfficheRevuesInfos(Revue revue) @@ -873,7 +931,7 @@ namespace MediaTekDocuments.view } /// - /// Vide les zones d'affichage des informations de la reuve + /// Vide les zones d'affichage des informations de la revue /// private void VideRevuesInfos() { @@ -889,10 +947,10 @@ namespace MediaTekDocuments.view } /// - /// Filtre sur le genre + /// Filtre sur le genre. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void cbxRevuesGenres_SelectedIndexChanged(object sender, EventArgs e) { if (cbxRevuesGenres.SelectedIndex >= 0) @@ -908,10 +966,10 @@ namespace MediaTekDocuments.view } /// - /// Filtre sur la catégorie de public + /// Filtre sur la catégorie de public. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void cbxRevuesPublics_SelectedIndexChanged(object sender, EventArgs e) { if (cbxRevuesPublics.SelectedIndex >= 0) @@ -927,10 +985,10 @@ namespace MediaTekDocuments.view } /// - /// Filtre sur le rayon + /// Filtre sur le rayon. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void cbxRevuesRayons_SelectedIndexChanged(object sender, EventArgs e) { if (cbxRevuesRayons.SelectedIndex >= 0) @@ -946,11 +1004,11 @@ namespace MediaTekDocuments.view } /// - /// Sur la sélection d'une ligne ou cellule dans le grid - /// affichage des informations de la revue + /// Sur la sélection d'une ligne ou cellule dans le grid, + /// affichage des informations de la revue. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void dgvRevuesListe_SelectionChanged(object sender, EventArgs e) { if (dgvRevuesListe.CurrentCell != null) @@ -972,30 +1030,30 @@ namespace MediaTekDocuments.view } /// - /// Sur le clic du bouton d'annulation, affichage de la liste complète des revues + /// Sur le clic du bouton d'annulation, affichage de la liste complète des revues. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void btnRevuesAnnulPublics_Click(object sender, EventArgs e) { RemplirRevuesListeComplete(); } /// - /// Sur le clic du bouton d'annulation, affichage de la liste complète des revues + /// Sur le clic du bouton d'annulation, affichage de la liste complète des revues. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void btnRevuesAnnulRayons_Click(object sender, EventArgs e) { RemplirRevuesListeComplete(); } /// - /// Sur le clic du bouton d'annulation, affichage de la liste complète des revues + /// Sur le clic du bouton d'annulation, affichage de la liste complète des revues. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void btnRevuesAnnulGenres_Click(object sender, EventArgs e) { RemplirRevuesListeComplete(); @@ -1024,10 +1082,10 @@ namespace MediaTekDocuments.view } /// - /// Tri sur les colonnes + /// Tri sur les colonnes. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void dgvRevuesListe_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { VideRevuesZones(); @@ -1061,16 +1119,27 @@ namespace MediaTekDocuments.view } #endregion - #region Onglet Paarutions + #region Onglet Parutions + /// + /// BindingSource lié à la liste des exemplaires. + /// private readonly BindingSource bdgExemplairesListe = new BindingSource(); + + /// + /// Liste locale des exemplaires d'une revue. + /// private List lesExemplaires = new List(); + + /// + /// Identifiant de l'état "neuf" d'un exemplaire. + /// const string ETATNEUF = "00001"; /// - /// Ouverture de l'onglet : récupère le revues et vide tous les champs. + /// Ouverture de l'onglet : récupère les revues et vide tous les champs. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void tabReceptionRevue_Enter(object sender, EventArgs e) { lesRevues = controller.GetAllRevues(); @@ -1100,10 +1169,10 @@ namespace MediaTekDocuments.view } /// - /// Recherche d'un numéro de revue et affiche ses informations + /// Recherche d'un numéro de revue et affiche ses informations. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void btnReceptionRechercher_Click(object sender, EventArgs e) { if (!txbReceptionRevueNumero.Text.Equals("")) @@ -1121,11 +1190,11 @@ namespace MediaTekDocuments.view } /// - /// Si le numéro de revue est modifié, la zone de l'exemplaire est vidée et inactive - /// les informations de la revue son aussi effacées + /// Si le numéro de revue est modifié, la zone de l'exemplaire est vidée et inactive. + /// Les informations de la revue sont aussi effacées. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void txbReceptionRevueNumero_TextChanged(object sender, EventArgs e) { txbReceptionRevuePeriodicite.Text = ""; @@ -1141,9 +1210,9 @@ namespace MediaTekDocuments.view } /// - /// Affichage des informations de la revue sélectionnée et les exemplaires + /// Affichage des informations de la revue sélectionnée et ses exemplaires. /// - /// la revue + /// La revue sélectionnée. private void AfficheReceptionRevueInfos(Revue revue) { // informations sur la revue @@ -1169,7 +1238,7 @@ namespace MediaTekDocuments.view } /// - /// Récupère et affiche les exemplaires d'une revue + /// Récupère et affiche les exemplaires d'une revue. /// private void AfficheReceptionExemplairesRevue() { @@ -1181,9 +1250,9 @@ namespace MediaTekDocuments.view /// /// Permet ou interdit l'accès à la gestion de la réception d'un exemplaire - /// et vide les objets graphiques + /// et vide les objets graphiques. /// - /// true ou false + /// True pour autoriser l'accès, False sinon. private void AccesReceptionExemplaireGroupBox(bool acces) { grpReceptionExemplaire.Enabled = acces; @@ -1194,10 +1263,10 @@ namespace MediaTekDocuments.view } /// - /// Recherche image sur disque (pour l'exemplaire à insérer) + /// Recherche image sur disque (pour l'exemplaire à insérer). /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void btnReceptionExemplaireImage_Click(object sender, EventArgs e) { string filePath = ""; @@ -1223,10 +1292,10 @@ namespace MediaTekDocuments.view } /// - /// Enregistrement du nouvel exemplaire + /// Enregistrement du nouvel exemplaire. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void btnReceptionExemplaireValider_Click(object sender, EventArgs e) { if (!txbReceptionExemplaireNumero.Text.Equals("")) @@ -1262,10 +1331,10 @@ namespace MediaTekDocuments.view } /// - /// Tri sur une colonne + /// Tri sur une colonne du grid des exemplaires. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void dgvExemplairesListe_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { string titreColonne = dgvReceptionExemplairesListe.Columns[e.ColumnIndex].HeaderText; @@ -1286,10 +1355,10 @@ namespace MediaTekDocuments.view } /// - /// affichage de l'image de l'exemplaire suite à la sélection d'un exemplaire dans la liste + /// Affichage de l'image de l'exemplaire suite à la sélection d'un exemplaire dans la liste. /// - /// - /// + /// La source de l'événement. + /// Les données de l'événement. private void dgvReceptionExemplairesListe_SelectionChanged(object sender, EventArgs e) { if (dgvReceptionExemplairesListe.CurrentCell != null) @@ -1312,6 +1381,11 @@ namespace MediaTekDocuments.view } #endregion //Checkpoint + /// + /// Recherche et affiche le livre par son numéro. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void btnSearchLivres_Click(object sender, EventArgs e) { if (!txtBoxNumDoc.Text.Equals("")) @@ -1334,6 +1408,11 @@ namespace MediaTekDocuments.view } } + /// + /// Tri sur les colonnes du second DataGridView des livres. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void dgvListeLivre2_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { VideLivresZones(); @@ -1366,6 +1445,11 @@ namespace MediaTekDocuments.view RemplirLivresListe(sortedList); } + /// + /// Affichage des informations du livre sélectionné et de ses commandes. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void dgvListeLivre2_SelectionChanged(object sender, EventArgs e) { if (dgvListeLivre2.CurrentCell != null) @@ -1393,7 +1477,10 @@ namespace MediaTekDocuments.view } } - // Checkpoint + /// + /// Remplit le DataGridView des commandes avec la liste reçue en paramètre. + /// + /// Liste des commandes de documents. private void RemplirCommandesListe(List lesCommandes) { dgvCommandes.DataSource = null; @@ -1412,6 +1499,10 @@ namespace MediaTekDocuments.view ViderZonesSaisieCommande(); } + /// + /// Affiche les informations détaillées du livre dans la partie commande. + /// + /// Le livre sélectionné. private void AfficheCommandeLivresInfos(Livre livre) { txbCommandeLivreTitre.Text = livre.Titre; @@ -1425,6 +1516,9 @@ namespace MediaTekDocuments.view txbLivresImage.Text = livre.Image; } + /// + /// Vide les zones d'affichage des informations du livre pour les commandes. + /// private void ViderZonesCommande() { txbCommandeLivreTitre.Text = ""; @@ -1435,7 +1529,11 @@ namespace MediaTekDocuments.view } - //Checkpoint + /// + /// Sur la sélection d'une commande, affiche ses informations dans les champs de saisie. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void dgvCommandes_SelectionChanged(object sender, EventArgs e) { if (dgvCommandes.CurrentRow?.DataBoundItem is CommandeDocument commande) @@ -1464,6 +1562,11 @@ namespace MediaTekDocuments.view } } + /// + /// Déclenche la suppression de la commande sélectionnée. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void btnDeleteCommande_Click(object sender, EventArgs e) { if (dgvListeLivre2.CurrentCell != null && dgvCommandes.CurrentCell != null) @@ -1475,6 +1578,10 @@ namespace MediaTekDocuments.view } } + /// + /// Procédure de suppression d'une commande de document (livre ou DVD). + /// + /// La commande à supprimer. private void deleteCommande(CommandeDocument commande) { if (commande.LibelleSuivi == "Livrée" || commande.LibelleSuivi == "Réglée" || commande.LibelleSuivi == "Relancée") @@ -1500,6 +1607,12 @@ namespace MediaTekDocuments.view } } + /// + /// Remplit le combo de suivi avec les étapes possibles. + /// + /// Liste des étapes de suivi. + /// BindingSource à utiliser. + /// ComboBox à remplir. public void RemplirComboSuivi(List etapesSuivi, BindingSource bdg, ComboBox cbx) { bdg.DataSource = etapesSuivi; @@ -1510,6 +1623,11 @@ namespace MediaTekDocuments.view } } + /// + /// Gère le clic sur le bouton d'ajout ou de modification d'une commande. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void btnCreateCommande_Click(object sender, EventArgs e) { DateTime dateCommande = dateTimeCommande.Value; @@ -1533,6 +1651,15 @@ namespace MediaTekDocuments.view } } + /// + /// Crée une nouvelle commande dans la base de données. + /// + /// Date de la commande. + /// Montant de la commande. + /// Nombre d'exemplaires commandés. + /// Identifiant de l'étape de suivi initiale. + /// Identifiant de la commande. + /// Identifiant du livre ou DVD concerné. private void createCommande(DateTime dateCommande, double montantCommande, int nbExemplaire, int suivi, string nextId, string idLivreDvd) { CommandeDocument commande = new CommandeDocument(nextId, dateCommande, montantCommande, nbExemplaire, idLivreDvd, suivi, "En cours"); @@ -1542,6 +1669,11 @@ namespace MediaTekDocuments.view RemplirCommandesListe(lesCommandes); } + /// + /// Modifie l'étape de suivi d'une commande existante. + /// + /// Index de la nouvelle étape de suivi. + /// La commande à modifier. private void modifCommande(int nouveauSuiviIndex, CommandeDocument commande) { int indexEtatActuel = cboSuivi.FindStringExact(commande.LibelleSuivi); @@ -1572,6 +1704,11 @@ namespace MediaTekDocuments.view } } + /// + /// Gère le clic de souris sur le DataGridView des commandes pour désélectionner si on clique dans le vide. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void dgvCommandes_MouseDown(object sender, MouseEventArgs e) { DataGridView.HitTestInfo hit = dgvCommandes.HitTest(e.X, e.Y); @@ -1583,6 +1720,9 @@ namespace MediaTekDocuments.view } } + /// + /// Vide les zones de saisie d'une nouvelle commande. + /// private void ViderZonesSaisieCommande() { updownMontant.Value = 0; @@ -1596,6 +1736,11 @@ namespace MediaTekDocuments.view updownNbExemplaire.Enabled = true; } + /// + /// Ouverture de l'onglet commande DVD. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void tabCommandeDvd_Enter(object sender, EventArgs e) { if (lesDvd.Count == 0) @@ -1606,6 +1751,11 @@ namespace MediaTekDocuments.view RemplirDvdListeComplete(); } + /// + /// Sur la sélection d'un DVD, affiche ses informations et ses commandes. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void dgvDvd_SelectionChanged(object sender, EventArgs e) { if (dgvDvd.CurrentCell != null) @@ -1631,6 +1781,10 @@ namespace MediaTekDocuments.view } } + /// + /// Affiche les informations détaillées du DVD sélectionné dans la partie commande. + /// + /// Le DVD sélectionné. private void afficheDvdInfos(Dvd dvd) { txtNbDocDvd.Text = dvd.Id; @@ -1643,6 +1797,10 @@ namespace MediaTekDocuments.view txtCheminImgDvd.Text = dvd.Image; txtDureeDvd.Text = dvd.Duree.ToString(); } + /// + /// Remplit le DataGridView des commandes de DVD avec la liste reçue en paramètre. + /// + /// Liste des commandes de DVD. private void RemplirCommandesDvdListe(List lesCommandes) { dgvCommandesDvd.DataSource = null; @@ -1657,6 +1815,11 @@ namespace MediaTekDocuments.view dgvCommandesDvd.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; } + /// + /// Gère le clic sur le bouton d'ajout ou de modification d'une commande de DVD. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void btnCreateCommandeDvd_Click(object sender, EventArgs e) { btnDeleteCommandeDvd.Enabled = false; @@ -1693,6 +1856,11 @@ namespace MediaTekDocuments.view } } + /// + /// Gère le clic de souris sur le DataGridView des commandes DVD pour désélectionner si on clique dans le vide. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void dgvCommandesDvd_MouseDown(object sender, MouseEventArgs e) { DataGridView.HitTestInfo hit = dgvCommandesDvd.HitTest(e.X, e.Y); @@ -1705,6 +1873,11 @@ namespace MediaTekDocuments.view } } + /// + /// Sur la sélection d'une commande de DVD, affiche ses informations dans les champs de saisie. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void dgvCommandesDvd_SelectionChanged(object sender, EventArgs e) { if (dgvCommandesDvd.CurrentRow != null) @@ -1727,6 +1900,9 @@ namespace MediaTekDocuments.view } } + /// + /// Vide les zones de saisie d'une nouvelle commande de DVD. + /// private void ViderZonesSaisieCommandeDvd() { dateTimeCommandeDvd.Value = DateTime.Now; @@ -1741,6 +1917,11 @@ namespace MediaTekDocuments.view groupBox2.Text = "Nouvelle commande"; } + /// + /// Recherche un DVD par son numéro et affiche ses informations et commandes. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void btnRechercheDvd_Click(object sender, EventArgs e) { if (!txtRechercheDvd.Text.Equals("")) @@ -1769,6 +1950,11 @@ namespace MediaTekDocuments.view } } + /// + /// Déclenche la suppression de la commande de DVD sélectionnée. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void btnDeleteCommandeDvd_Click(object sender, EventArgs e) { if (dgvCommandesDvd.CurrentCell != null) @@ -1780,6 +1966,10 @@ namespace MediaTekDocuments.view } } + /// + /// Procédure de suppression d'une commande de DVD. + /// + /// La commande à supprimer. private void deleteCommandeDvd(CommandeDocument commande) { if (commande.LibelleSuivi == "Livrée" || commande.LibelleSuivi == "Réglée" || commande.LibelleSuivi == "Relancée") @@ -1814,6 +2004,9 @@ namespace MediaTekDocuments.view } } + /// + /// Vérifie les abonnements expirant sous 30 jours et affiche une alerte. + /// private void AlerteAbonnementsExpirants() { List toutesLesRevues = controller.GetAllRevues(); @@ -1838,17 +2031,34 @@ namespace MediaTekDocuments.view } } + /// + /// Vérifie si un abonnement peut être supprimé (aucun exemplaire reçu pendant la période). + /// + /// L'abonnement à vérifier. + /// True si l'abonnement peut être supprimé, False sinon. private bool PeutSupprimerAbonnement(Abonnement abonnement) { List exemplaires = controller.GetExemplairesRevue(abonnement.IdRevue); return !exemplaires.Exists(ex => ParutionDansAbonnement(abonnement.DateCommande,abonnement.DateFinAbonnement, ex.DateAchat)); } + /// + /// Vérifie si une date de parution se situe dans une période d'abonnement. + /// + /// Date de début de l'abonnement. + /// Date de fin de l'abonnement. + /// Date de parution à vérifier. + /// True si la parution est dans l'abonnement, False sinon. public bool ParutionDansAbonnement(DateTime dateCommande, DateTime dateFinAbonnement, DateTime dateParution) { return (dateParution >= dateCommande && dateParution <= dateFinAbonnement); } + /// + /// Recherche une revue pour la gestion des abonnements par son numéro. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void btnRevuesCommandesRechercher_Click(object sender, EventArgs e) { if (!txbRevuesCommandesNumRecherche.Text.Equals("")) @@ -1865,6 +2075,10 @@ namespace MediaTekDocuments.view } } + /// + /// Affiche les informations de la revue sélectionnée pour la gestion des abonnements. + /// + /// La revue sélectionnée. private void AfficheRevueInfosCommande(Revue revue) { txbRevuesCommandesTitre.Text = revue.Titre; @@ -1880,6 +2094,10 @@ namespace MediaTekDocuments.view grpAbonnementSaisie.Enabled = true; } + /// + /// Remplit le DataGridView des abonnements avec la liste reçue en paramètre. + /// + /// Liste des abonnements. private void RemplirAbonnementsListe(List abonnements) { bdgAbonnements.DataSource = abonnements; @@ -1889,6 +2107,11 @@ namespace MediaTekDocuments.view dgvAbonnements.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; } + /// + /// Ouverture de l'onglet gestion des abonnements revues. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void tabCommandeRevues_Enter(object sender, EventArgs e) { // On charge la liste des revues pour permettre la recherche par numéro @@ -1897,6 +2120,9 @@ namespace MediaTekDocuments.view ViderAbonnementChamps(); } + /// + /// Vide tous les champs liés à la gestion des abonnements. + /// private void ViderAbonnementChamps() { txbRevuesCommandesNumRecherche.Text = ""; @@ -1909,6 +2135,11 @@ namespace MediaTekDocuments.view grpAbonnementSaisie.Enabled = false; } + /// + /// Gère le clic sur le bouton d'ajout d'un nouvel abonnement. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void btnAbonnementAjouter_Click(object sender, EventArgs e) { string idRevue = txbRevuesCommandesNumRecherche.Text; @@ -1939,6 +2170,11 @@ namespace MediaTekDocuments.view } } + /// + /// Gère le clic sur le bouton de suppression d'un abonnement. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void btnAbonnementSupprimer_Click(object sender, EventArgs e) { if (dgvAbonnements.CurrentRow == null) @@ -1969,6 +2205,11 @@ namespace MediaTekDocuments.view } } + /// + /// Gère le tri sur les colonnes du DataGridView des abonnements. + /// + /// Source de l'événement. + /// Informations sur l'événement. private void dgvAbonnements_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { string titreColonne = dgvAbonnements.Columns[e.ColumnIndex].DataPropertyName;