ajout du bouton de tri (fonctionnel (faudra juste rajouter des types d'unstruments quand y'en aura +)

pull/8/head
Vivien DUFOUR 2 years ago
parent a5365f8f09
commit ea29528c56

@ -21,7 +21,7 @@ namespace MusiLib.Model
[DataMember]
public string Auteur { get; private set; }
[DataMember]
public int Complexite { get; private set; }
public string Complexite { get; private set; }
[DataMember]
public string Description { get; private set; }
[DataMember]
@ -29,7 +29,7 @@ namespace MusiLib.Model
[DataMember]
public string Son { get; private set; }
public Partition(string nom, string auteur, int complexite, string description, string instrument, string son)
public Partition(string nom, string auteur, string complexite, string description, string instrument, string son)
{
Nom = nom;
IdPartition = idTotal;

@ -1,37 +1,46 @@
using MusiLib.Model;
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MusiLib.Model;
namespace App.Models
namespace MusiLib.Model
{
class Trier
public class Trier
{
private List<Partition> partitionsInitiales;
private List<Partition> partitionsFiltrees;
public List<Partition> partitions = new List<Partition>();
public List<Partition> parNom(List<Partition> liste)
public Trier(List<Partition> partitions)
{
Comparer<Partition> comparer = Comparer<Partition>.Create((p1, p2) => p1.Nom.CompareTo(p2.Nom));
liste.Sort(comparer);
return liste;
partitionsInitiales = partitions.ToList();
partitionsFiltrees = new List<Partition>(partitionsInitiales);
}
public List<Partition> parComplexite(List<Partition> liste)
public List<Partition> TrierParInstrument(string instrument)
{
Comparer<Partition> comparer = Comparer<Partition>.Create((p1, p2) => p1.Complexite.CompareTo(p2.Complexite));
liste.Sort(comparer);
return liste;
partitionsFiltrees = partitionsInitiales.Where(p => p.Instrument.ToLower() == instrument.ToLower()).ToList();
return partitionsFiltrees;
}
public List<Partition> parInstrument(List<Partition> liste)
public List<Partition> TrierParComplexite(string complexite)
{
Comparer<Partition> comparer = Comparer<Partition>.Create((p1, p2) => p1.Instrument.CompareTo(p2.Instrument));
liste.Sort(comparer);
return liste;
partitionsFiltrees = partitionsInitiales.Where(p => p.Complexite.ToLower() == complexite.ToLower()).ToList();
Console.WriteLine("string : " + complexite);
foreach (Partition partition in partitionsInitiales)
{
Console.WriteLine(partition.Complexite);
}
return partitionsFiltrees;
}
public List<Partition> TrierParOrdreAlphabetique(string ordre)
{
if (ordre == "Croissant")
partitionsFiltrees = partitionsInitiales.OrderBy(p => p.Nom).ToList();
else if (ordre == "Décroissant")
partitionsFiltrees = partitionsInitiales.OrderByDescending(p => p.Nom).ToList();
return partitionsFiltrees;
}
}
}

@ -23,12 +23,12 @@ namespace MusiLib.Stub
utilisateurs.Add(kevin);
utilisateurs.Add(michel);
Partition amazing_grace = new Partition("Amazing Grace", "John Newton", 0, "Amazing Grace est l'un des cantiques chrétiens les plus célèbres dans le monde anglophone. La première publication des paroles date de 1779. Associé à diverses mélodies au fil des années, il est aujourd'hui interprété sur la musique de New Britain", "piano", "amazing-grace.mid");
Partition au_clair_de_la_lune = new Partition("Au clair de la lune", "Édouard-Léon Scott de Martinville", 0, "Au clair de la lune est une chanson populaire française dont la mélodie, très caractéristique, ainsi que les paroles — surtout celles du premier couplet — sont si familières qu'elles ont fait l'objet d'innombrables citations, adaptations, parodies, pastiches, etc.", "piano", "au_clair_de_la_lune.wav");
Partition aura_lee_love_me = new Partition("aura lee love me", "Elvis Presley", 0, " Love Me Tender est une ballade de 1956 enregistrée par Elvis Presley et publiée par Elvis Presley Music du film du même nom de la 20th Century Fox . Les paroles sont créditées à Vera Matson (bien que le parolier réel était son mari, Ken Darby) et Elvis Presley lui-même. La mélodie est identique à la ballade sentimentale de la guerre civile Aura Lea et donc attribuée au compositeur d'Aura Lea, l'Anglais George R. Poulton.", "piano", "aura-lee-love-me-tender.mid");
Partition ode_a_la_joie = new Partition("Hymne à la joie", "Friedrich von Schiller", 0, "Ode à la joie — appelée également Hymne à la joie1 — est un poème de Friedrich von Schiller écrit en 1785. Il est surtout connu comme finale du quatrième et dernier mouvement de la 9e Symphonie de Beethoven, devenu l'hymne officiel de l'Union européenne2.Ce poème célèbre l'idéal de l'unité et de la fraternité humaines (« Millions dêtres, soyez tous embrassés dune commune étreinte ! ). Son titre original est An die Freude, mais il est souvent appelé Ode an die Freude.", "piano", "amazing-grace.mid");
Partition fais_dodo_colas = new Partition("Fais dodo", "Inconnu", 0, "Fais dodo est une berceuse enfantine en langue française dont l'auteur est inconnu et est dans le domaine public. La mélodie, très connue, date du XVIIIe siècle et se chante dans toutes les régions de France et également au Québec. Il y a quelques variantes, où les ingrédients du texte changent : nougat au lieu de chocolat, d'autres fois des bateaux : « Papa est en haut qui fait des bateaux pour le p'tit Pierrot qui fait son dodo... » ", "piano", "fais-dodo-colas-mon-petit-frere.mid");
Partition Frere_Jacques = new Partition("Frère Jacques", "Jean-Philippe Rameau", 0, "Frère Jacques est une chanson enfantine française du XVIIIe siècle, connue dans le monde entier et traduite dans de nombreuses langues. Longtemps considérée comme anonyme, elle a vraisemblablement pour auteur Jean-Philippe Rameau. Selon l'historienne et musicologue Sylvie Bouissou, l'auteur de la chanson n'est autre que Jean-Philippe Rameau1,2. En effet, dans un exemplaire de son ouvrage Diapason général de tous les instruments à vent (1772), Louis-Joseph Francœur, violoniste de l'Opéra de Paris dans les années où Rameau y était actif, a inséré les manuscrits de quatre canons qu'il attribue à Rameau, parmi lesquels on trouve donc Frère Jacques, mais surtout deux autres déjà connus comme étant de Rameau;", "piano", "frere-jacques.mid");
Partition amazing_grace = new Partition("Amazing Grace", "John Newton", "Facile", "Amazing Grace est l'un des cantiques chrétiens les plus célèbres dans le monde anglophone. La première publication des paroles date de 1779. Associé à diverses mélodies au fil des années, il est aujourd'hui interprété sur la musique de New Britain", "piano", "amazing-grace.mid");
Partition au_clair_de_la_lune = new Partition("Au clair de la lune", "Édouard-Léon Scott de Martinville", "Moyen", "Au clair de la lune est une chanson populaire française dont la mélodie, très caractéristique, ainsi que les paroles — surtout celles du premier couplet — sont si familières qu'elles ont fait l'objet d'innombrables citations, adaptations, parodies, pastiches, etc.", "piano", "au_clair_de_la_lune.wav");
Partition aura_lee_love_me = new Partition("aura lee love me", "Elvis Presley", "Facile", " Love Me Tender est une ballade de 1956 enregistrée par Elvis Presley et publiée par Elvis Presley Music du film du même nom de la 20th Century Fox . Les paroles sont créditées à Vera Matson (bien que le parolier réel était son mari, Ken Darby) et Elvis Presley lui-même. La mélodie est identique à la ballade sentimentale de la guerre civile Aura Lea et donc attribuée au compositeur d'Aura Lea, l'Anglais George R. Poulton.", "piano", "aura-lee-love-me-tender.mid");
Partition ode_a_la_joie = new Partition("Hymne à la joie", "Friedrich von Schiller", "Difficile", "Ode à la joie — appelée également Hymne à la joie1 — est un poème de Friedrich von Schiller écrit en 1785. Il est surtout connu comme finale du quatrième et dernier mouvement de la 9e Symphonie de Beethoven, devenu l'hymne officiel de l'Union européenne2.Ce poème célèbre l'idéal de l'unité et de la fraternité humaines (« Millions dêtres, soyez tous embrassés dune commune étreinte ! ). Son titre original est An die Freude, mais il est souvent appelé Ode an die Freude.", "piano", "amazing-grace.mid");
Partition fais_dodo_colas = new Partition("Fais dodo", "Inconnu", "Facile", "Fais dodo est une berceuse enfantine en langue française dont l'auteur est inconnu et est dans le domaine public. La mélodie, très connue, date du XVIIIe siècle et se chante dans toutes les régions de France et également au Québec. Il y a quelques variantes, où les ingrédients du texte changent : nougat au lieu de chocolat, d'autres fois des bateaux : « Papa est en haut qui fait des bateaux pour le p'tit Pierrot qui fait son dodo... » ", "piano", "fais-dodo-colas-mon-petit-frere.mid");
Partition Frere_Jacques = new Partition("Frère Jacques", "Jean-Philippe Rameau", "Moyen", "Frère Jacques est une chanson enfantine française du XVIIIe siècle, connue dans le monde entier et traduite dans de nombreuses langues. Longtemps considérée comme anonyme, elle a vraisemblablement pour auteur Jean-Philippe Rameau. Selon l'historienne et musicologue Sylvie Bouissou, l'auteur de la chanson n'est autre que Jean-Philippe Rameau1,2. En effet, dans un exemplaire de son ouvrage Diapason général de tous les instruments à vent (1772), Louis-Joseph Francœur, violoniste de l'Opéra de Paris dans les années où Rameau y était actif, a inséré les manuscrits de quatre canons qu'il attribue à Rameau, parmi lesquels on trouve donc Frère Jacques, mais surtout deux autres déjà connus comme étant de Rameau;", "piano", "frere-jacques.mid");
amazing_grace.ajouterImage("amazing.png");
amazing_grace.ajouterImage("au_clair.png");
au_clair_de_la_lune.ajouterImage("au_clair.png");

@ -54,13 +54,14 @@
TextChanged="SearchBar_TextChanged"
/>
<Image Grid.Row="0" Grid.Column="2"
<ImageButton Grid.Row="0" Grid.Column="2"
Source="tri.png"
WidthRequest="60"
HeightRequest="60"
VerticalOptions="Start"
HorizontalOptions="Center"
Margin="100,3,0,0"
Clicked="TriButton_Clicked"
/>
<ImageButton Grid.Row="0" Grid.Column="3"

@ -9,12 +9,14 @@ namespace MusiLib.Views
private List<Partition> partitionsInitiales;
private List<Partition> partitionsFiltrees;
private Trier trieur;
public Accueil()
{
InitializeComponent();
partitionsInitiales = MyManager.partitions.ToList();
partitionsFiltrees = new List<Partition>(partitionsInitiales);
trieur = new Trier(MyManager.partitions.ToList());
BindingContext = MyManager;
chargerPartitions();
}
@ -116,5 +118,72 @@ namespace MusiLib.Views
chargerPartitions();
}
private async void TriButton_Clicked(object sender, EventArgs e)
{
var action = await DisplayActionSheet("Trier par", "Annuler", null, "Type", "Difficulté", "Ordre alphabétique", "Réinitialiser");
switch (action)
{
case "Type":
await TrierParTypeButton();
break;
case "Difficulté":
await TrierParDifficulteButton();
break;
case "Ordre alphabétique":
await TrierParOrdreAlphabetiqueButton();
break;
case "Réinitialiser":
ReinitialiserButton();
break;
}
}
private async Task TrierParTypeButton()
{
var action = await DisplayActionSheet("Trier par", "Annuler", null, "Batterie", "Guitare", "Piano");
if (action == "Annuler")
return;
var partitionsTriees = trieur.TrierParInstrument(action);
partitionsFiltrees = new List<Partition>(partitionsTriees);
chargerPartitions();
}
private async Task TrierParDifficulteButton()
{
var action = await DisplayActionSheet("Trier par", "Annuler", null, "Facile", "Moyen", "Difficile");
if (action == "Annuler")
return;
var partitionsTriees = trieur.TrierParComplexite(action);
partitionsFiltrees = new List<Partition>(partitionsTriees);
chargerPartitions();
}
private async Task TrierParOrdreAlphabetiqueButton()
{
var action = await DisplayActionSheet("Trier par", "Annuler", null, "Croissant", "Décroissant");
if (action == "Annuler")
return;
var partitionsTriees = trieur.TrierParOrdreAlphabetique(action);
partitionsFiltrees = new List<Partition>(partitionsTriees);
chargerPartitions();
}
private void ReinitialiserButton()
{
partitionsFiltrees.Clear();
partitionsFiltrees.AddRange(partitionsInitiales);
chargerPartitions();
}
}
}

Loading…
Cancel
Save