예제 #1
0
        /// <summary>
        /// Fonction demandant à l'utilisateur de choisir une instance de lieu de stockage, puis retournant une liste de dons stockés dedans dont l'objet est de type M, triés selon la propriété dont on a le get en argument
        /// </summary>
        /// <typeparam name="T">Type de l'élément à comparer</typeparam>
        /// <typeparam name="M">Type de l'objet du don. Par exemple Materiel</typeparam>
        /// <param name="message">Message à afficher avant la liste d'objets</param>
        /// <param name="fonctionObtentionPropriete"></param>
        public static void sousMenuTriLieuStockage <M, T>(string message, FonctionObtentionProprieteDon <T> fonctionObtentionPropriete) where T : IComparable <T> where M : Materiel
        {
            LieuStockage lieuStockageDon = InteractionUtilisateur.RechercherUnElement(Recherche.RechercheParNomLieuStockageType <LieuStockage>, true, "nom (Ne rien entrer les affichera tous.)");

            InteractionUtilisateur.ListerObjets <Don>(message, TriLieuStockage <M, T>(lieuStockageDon, fonctionObtentionPropriete));
        }
예제 #2
0
        public static void MenuTris()
        {
            sousMenu menuChoisi = InteractionUtilisateur.DemanderChoixObjet <sousMenu>("Menu Tri :",

                                                                                       new sousMenu[] { () => InteractionUtilisateur.ListerObjets("Liste des dons refusés triés par date", Tri.TriRefuse(don => don.DateReception)),
                                                                                                        () => InteractionUtilisateur.ListerObjets("Liste des dons acceptés ou stockés triés par nom de donateur", Tri.TriAccepteStocke(don => don.NomDonateur)),
                                                                                                        () => InteractionUtilisateur.ListerObjets("Liste des dons acceptés ou stockés triés par identifiant", Tri.TriAccepteStocke(don => don.Identifiant)),
                                                                                                        () => InteractionUtilisateur.ListerObjets("Liste des dons donnés/vendus par numéro de bénéficiaire", Tri.TriVenduDonne(donLegue => donLegue.BeneficiaireObjet.Identifiant)),
                                                                                                        () => InteractionUtilisateur.ListerObjets <DonLegue>("Liste des dons donnés/vendus par mois", Tri.TriVenduDonne(x => x.DateLegue.Month)),
                                                                                                        () => Tri.sousMenuTriLieuStockage <Materiel, string>("Liste des dons stockés dans ce lieu de stockage par catégorie", don => don.TypeObjet.Name),
                                                                                                        () => Tri.sousMenuTriLieuStockage <Materiel, string>("Liste des dons stockés dans ce lieu de stockage par description", don => don.DescriptionComplementaire),
                                                                                                        () => Tri.sousMenuTriLieuStockage <ObjetVolumineux, double>("Liste des dons stockés dans ce lieu de stockage par volume", don => ((ObjetVolumineux)don.Objet).Volume),
                                                                                                        //Vu qu'un objet d'un don n'est pas forcément volumineux en temps normal, il est nécéssaire de caster l'objet du don en objet volumineux pour accéder à son volume.
                                                                                                        //Il n'y a ici pas de risque d'erreur à l'execution car on a spécifié à la méthode générique TriLieuStockage de ne récupérer que les objets volumineux stockés.
                                                                                                        () => Tri.sousMenuTriLieuStockage <Materiel, double>("Liste des dons stockés dans ce lieu de stockage par prix", don => (don.Objet).Prix),
                                                                                                        Rien },
                                                                                       new string[] { "Liste des dons refusés triés par date",
                                                                                                      "Liste des dons acceptés ou stockés triés par Nom de donateur",
                                                                                                      "Liste des dons acceptés ou stockés triés par identifiant",
                                                                                                      "Liste des dons donnés/vendus par numéro de bénéficiaire",
                                                                                                      "Liste des dons donnés/vendus par mois",
                                                                                                      "Liste des dons stockés par lieu de stockage et par catégorie/description",
                                                                                                      "Liste des dons stockés par lieu de stockage et par description",
                                                                                                      "Liste des dons stockés par lieu de stockage et par volume",
                                                                                                      "Liste des dons stockés par lieu de stockage et par prix",
                                                                                                      "Retour" });

            menuChoisi();
        }