/// <summary> /// Fonction retournant une liste de dons acceptés ou stockés, triés selon la propriété dont on a le get en argument /// </summary> /// <example> /// <code> /// TriAccepteStocke<int>(x => x.Identifiant); /// </code> /// </example> /// <typeparam name="T">Type de l'élément à comparer</typeparam> /// <param name="fonctionObtentionPropriete">fonction donnant la propriété à comparer </param> /// <returns>liste triée de dons acceptés ou stockés</returns> public static List <Don> TriAccepteStocke <T>(FonctionObtentionProprieteDon <T> fonctionObtentionPropriete) where T : IComparable <T> { List <Don> donsAccepteStocke = Don.TrouverDon(don => don.Statut == Don.StatutDon.Accepte || don.Statut == Don.StatutDon.Stocke); donsAccepteStocke.Sort((x, y) => fonctionObtentionPropriete(x).CompareTo(fonctionObtentionPropriete(y))); return(donsAccepteStocke); }
/// <summary> /// Fonction retournant une liste de dons refusés, triés selon la propriété dont on a le get en argument /// </summary> /// <typeparam name="T">Type de l'élément à comparer</typeparam> /// <param name="fonctionObtentionPropriete">fonction donnant la propriété à comparer </param> /// <returns>liste triée de dons refusés</returns> public static List <Don> TriRefuse <T>(FonctionObtentionProprieteDon <T> fonctionObtentionPropriete) where T : IComparable <T> { List <Don> donsRefusesParDate = Don.TrouverDon(don => don.Statut == Don.StatutDon.Refuse); donsRefusesParDate.Sort((x, y) => fonctionObtentionPropriete(x).CompareTo(fonctionObtentionPropriete(y))); return(donsRefusesParDate); }
/// <summary> /// Fonction retournant une liste de dons stockés 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="fonctionObtentionPropriete">fonction donnant la propriété à comparer </param> /// <param name="lieuStockage">Instance du lieu de stockage dans laquelle chercher</param> /// <returns>liste triée de dons stockés</returns> public static List <Don> TriLieuStockage <M, T>(LieuStockage lieuStockage, FonctionObtentionProprieteDon <T> fonctionObtentionPropriete) where T : IComparable <T> where M : Materiel { List <Don> donsStockes = lieuStockage.TrouverDon <M>(don => don.LieuStockageDon == lieuStockage); donsStockes.Sort((x, y) => fonctionObtentionPropriete(x).CompareTo(fonctionObtentionPropriete(y))); return(donsStockes); }
/// <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)); }