Documentation finie sauf pour la persistance

master
thchazot1 3 years ago
parent 4fc8ee9999
commit c89eac5264

@ -31,7 +31,7 @@ namespace WpfApp1
} }
public Manager Mgr => (Application.Current as App).LeManager; //Manager lié à celui de l'app public Manager Mgr => (Application.Current as App).LeManager; //Manager lié à celui de l'app
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //Manager lié à celui de l'app public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //ManagerUser lié à celui de l'app
private List<Conservation> consList = new List<Conservation> //List<Conservation> contenant toutes les conservations private List<Conservation> consList = new List<Conservation> //List<Conservation> contenant toutes les conservations

@ -26,7 +26,7 @@ namespace WpfApp1
InitializeComponent(); InitializeComponent();
} }
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //Manager lié à celui de l'app public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //ManagerUser lié à celui de l'app
/// <summary> /// <summary>

@ -27,7 +27,7 @@ namespace WpfApp1
InitializeComponent(); InitializeComponent();
} }
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //Manager lié à celui de l'app public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //ManagerUser lié à celui de l'app
/// <summary> /// <summary>

@ -28,7 +28,7 @@ namespace WpfApp1
InitializeComponent(); InitializeComponent();
} }
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //Manager lié à celui de l'app public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //ManagerUser lié à celui de l'app
private Personne _pers; private Personne _pers;
public Personne pers //L'utilisateur qui permettra de mettre les informations de la page à jour public Personne pers //L'utilisateur qui permettra de mettre les informations de la page à jour

@ -28,7 +28,7 @@ namespace WpfApp1
public partial class MainWindow : Window public partial class MainWindow : Window
{ {
public Manager Mgr => (Application.Current as App).LeManager; //Manager lié à celui de l'app public Manager Mgr => (Application.Current as App).LeManager; //Manager lié à celui de l'app
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //Manager lié à celui de l'app public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //ManagerUser lié à celui de l'app
Nullable<Zone> zonePage{ get; set; } //Zone qui permet de connaitre la zone de la comboBox Nullable<Zone> zonePage{ get; set; } //Zone qui permet de connaitre la zone de la comboBox

@ -23,7 +23,7 @@ namespace WpfApp1
public partial class SeConnecter : Window public partial class SeConnecter : Window
{ {
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //Manager lié à celui de l'app public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //ManagerUser lié à celui de l'app
public SeConnecter() public SeConnecter()
{ {
InitializeComponent(); InitializeComponent();

@ -17,6 +17,7 @@ namespace WpfApp1
{ {
/// <summary> /// <summary>
/// Logique d'interaction pour UserControlBoite.xaml /// Logique d'interaction pour UserControlBoite.xaml
/// UerControl pour toutes les fois ou nous avons besoins d'un textBlock et en dessous d'une textBox
/// </summary> /// </summary>
public partial class UserControlBoite : UserControl public partial class UserControlBoite : UserControl
{ {

@ -32,11 +32,11 @@ namespace WpfApp1
public Manager Mgr => (Application.Current as App).LeManager; public Manager Mgr => (Application.Current as App).LeManager; //ManagerUser lié à celui de l'app
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //ManagerUser lié à celui de l'app
private Requin _requin; private Requin _requin;
public Requin requin public Requin requin //Requin qui permet de mettre à jour l'affichage de la page
{ {
get { return _requin; } get { return _requin; }
set set
@ -47,7 +47,7 @@ namespace WpfApp1
} }
private List<Conservation> consList = new List<Conservation> private List<Conservation> consList = new List<Conservation> //List<Conservatio> qui contient tous les status de conservation
{ {
Conservation.EX, Conservation.EX,
Conservation.EW, Conservation.EW,
@ -61,9 +61,13 @@ namespace WpfApp1
}; };
/// <summary>
public void UptadeUi(Requin requin) /// Méthode qui permet de mettre à jour l'affichage de la page à partir d'un requin
/// </summary>
/// <param name="requin"></param>
private void UptadeUi(Requin requin)
{ {
//Met à jour les textBoxs
leNom.Contenu = requin.Nom; leNom.Contenu = requin.Nom;
nomSci.Contenu = requin.NomSci; nomSci.Contenu = requin.NomSci;
desc.Contenu = requin.Description; desc.Contenu = requin.Description;
@ -72,24 +76,24 @@ namespace WpfApp1
LienMap.Contenu = requin.PhotoCarte; LienMap.Contenu = requin.PhotoCarte;
funFact.Contenu = requin.FunFact; funFact.Contenu = requin.FunFact;
//Boucles qui permettent de cocher le bon radioButton en fonction du status de conservation du requin
foreach (Control control in this.radioButtons.Children) foreach (Control control in this.radioButtons.Children) //For each sur tout ce que possède radioButtons
{ {
if (control is RadioButton radio) if (control is RadioButton radio) //Regarde si le control est un RadioButton
{ {
if (radio.Content is string radString) if (radio.Content is string radString) //Transforme le radio.content en string
{ {
if (radString == requin.StatutCons.ToString()) if (radString == requin.StatutCons.ToString()) //Test si il est égal au ToString du status de conservation du requin
{ {
radio.IsChecked = true; radio.IsChecked = true; //Coche le RadioButton
goto loopEnd; goto loopEnd; //Permet de sortir des boucles quand le radioButton a été coché
} }
} }
} }
} }
loopEnd: loopEnd:
//Coche les bonnes zones en fonction de la répartition du requin
foreach (Zone z in requin.Repartition) foreach (Zone z in requin.Repartition)
{ {
if (z == Zone.ATLANTIQUE) if (z == Zone.ATLANTIQUE)
@ -111,14 +115,27 @@ namespace WpfApp1
} }
} }
/// <summary>
/// Evénement qui permet à l'utilisateur de retourner à la page de description du requin
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void exit_Click(object sender, RoutedEventArgs e) private void exit_Click(object sender, RoutedEventArgs e)
{ {
//Change le content control de la main window en UserControlDescription
((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapDes(requin); ((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapDes(requin);
} }
/// <summary>
/// Evénement qui permet de valider les modifications faites à un requin
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void submit_Click(object sender, RoutedEventArgs e) private void submit_Click(object sender, RoutedEventArgs e)
{ {
int test = 0; int test = 0;
//Récupère les informations qu'a rentré l'utilisateur
List<Zone> lesZones = new List<Zone>(); List<Zone> lesZones = new List<Zone>();
Conservation cons = new Conservation(); Conservation cons = new Conservation();
string nom = leNom.LeContenu.Text; string nom = leNom.LeContenu.Text;
@ -129,21 +146,22 @@ namespace WpfApp1
string map = LienMap.LeContenu.Text; string map = LienMap.LeContenu.Text;
string fun = funFact.LeContenu.Text; string fun = funFact.LeContenu.Text;
//Bouclesqui récupèrent le RadioButton coché et mettent le bon status de conservation dans cons
foreach (Control control in this.radioButtons.Children) foreach (Control control in this.radioButtons.Children)
{ {
if (control is RadioButton radio) if (control is RadioButton radio)
{ {
if (radio.IsChecked == true) if (radio.IsChecked == true) //Test si le RadioButton est coché
{ {
if (radio.Content is string radString) if (radio.Content is string radString) //Transforme son content en string
{ {
foreach (Conservation conserv in consList) foreach (Conservation conserv in consList) //Boucles pour tester avec tous les status de conservation
{ {
if (radString == conserv.ToString()) if (radString == conserv.ToString())
{ {
cons = conserv; cons = conserv;
test++; test++;
goto loopEnd ; goto loopEnd ; //Sort des boucles
} }
} }
} }
@ -152,13 +170,14 @@ namespace WpfApp1
} }
loopEnd: loopEnd:
//Test si la vidéo vient du répertoire Vidéos
if (!video.Contains("Videos/")) if (!video.Contains("Videos/"))
{ {
MessageBox.Show("Les vidéos doivent venir obligatoirement du répertoire Videos"); MessageBox.Show("Les vidéos doivent venir obligatoirement du répertoire Videos");
return; return;
} }
//Test quels checkBox sont cochées et ajoute dans la liste de zone du requin les zones cochées
if (Arct.IsChecked == true) if (Arct.IsChecked == true)
{ {
lesZones.Add(Zone.ARCTIQUE); lesZones.Add(Zone.ARCTIQUE);
@ -175,23 +194,28 @@ namespace WpfApp1
{ {
lesZones.Add(Zone.PACIFIQUE); lesZones.Add(Zone.PACIFIQUE);
} }
//Test si toutes les informations sont bien remplies
if (test == 0 || lesZones.Count()==0 || Mgr.verifierRequin(nom, sciNam, descri, photo, video, map)==false) if (test == 0 || lesZones.Count()==0 || Mgr.verifierRequin(nom, sciNam, descri, photo, video, map)==false)
{ {
MessageBox.Show("Veuillez remplir tout les champs obligatoires"); MessageBox.Show("Veuillez remplir tout les champs obligatoires");
} }
//Test si la fun fact et vide
else if (string.IsNullOrWhiteSpace(fun)) else if (string.IsNullOrWhiteSpace(fun))
{ {
//Si elle est vide alors utilise le constructeur de requin avec la liste de fun facts
Requin req = new Requin(nom, sciNam, descri, photo, video, map, cons, lesZones, Mgr.FunFacts); Requin req = new Requin(nom, sciNam, descri, photo, video, map, cons, lesZones, Mgr.FunFacts);
//Test si l'utilisateur est un Expert ou un Utilisateur
if (MgrUser.SelectedUser is Utilisateur user) if (MgrUser.SelectedUser is Utilisateur user)
{ {
//Ajoute le requin dans la liste des requins modifiés
user.AjouterRequin(req, Mgr.RequinsEdit); user.AjouterRequin(req, Mgr.RequinsEdit);
} }
else else
{ {
//Ajoute le requin dans la liste de requin validés
Mgr.ModifieRequin(Mgr.Requins.SingleOrDefault(r => r.Equals(req)), req); Mgr.ModifieRequin(Mgr.Requins.SingleOrDefault(r => r.Equals(req)), req);
} }
//Change le content control de la main window en UserControlDesscription
((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapDes(requin); ((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapDes(requin);
} }
else else

@ -24,8 +24,6 @@ namespace WpfApp1
public partial class ValiderSubmit : Window public partial class ValiderSubmit : Window
{ {
public Manager Mgr => (Application.Current as App).LeManager; public Manager Mgr => (Application.Current as App).LeManager;
public ValiderSubmit() public ValiderSubmit()
{ {

@ -37,7 +37,7 @@
<None Remove="Videos\GrandRequinBlanc.mp4" /> <None Remove="Videos\GrandRequinBlanc.mp4" />
<None Remove="Videos\Le requin Renard.mp4" /> <None Remove="Videos\Le requin Renard.mp4" />
<None Remove="Videos\Le requin-bouledogue.mp4" /> <None Remove="Videos\Le requin-bouledogue.mp4" />
<None Remove="Videos\requin_Asley.mp4" /> <None Remove="Videos\requin_Ashley.mp4" />
<None Remove="Videos\shrekin.mp4" /> <None Remove="Videos\shrekin.mp4" />
<None Remove="Videos\Vid-dormeur-mexicain.mp4" /> <None Remove="Videos\Vid-dormeur-mexicain.mp4" />
<None Remove="Videos\Vid-Requin-Blanc.mp4" /> <None Remove="Videos\Vid-Requin-Blanc.mp4" />
@ -111,7 +111,7 @@
<Content Include="Videos\Le requin-bouledogue.mp4"> <Content Include="Videos\Le requin-bouledogue.mp4">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
<Content Include="Videos\requin_Asley.mp4"> <Content Include="Videos\requin_Ashley.mp4">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
<Content Include="Videos\shrekin.mp4"> <Content Include="Videos\shrekin.mp4">

@ -23,7 +23,7 @@ namespace WpfApp1
/// </summary> /// </summary>
public partial class userControlAcceuil : UserControl public partial class userControlAcceuil : UserControl
{ {
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //Manager lié à celui de l'app public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //ManagerUser lié à celui de l'app
public userControlAcceuil() public userControlAcceuil()
{ {

@ -23,6 +23,7 @@ namespace WpfApp1
{ {
/// <summary> /// <summary>
/// Logique d'interaction pour userControlDescription.xaml /// Logique d'interaction pour userControlDescription.xaml
/// UserControl qui affiche la desription d'un requin
/// </summary> /// </summary>
public partial class userControlDescription : UserControl public partial class userControlDescription : UserControl
{ {
@ -30,11 +31,11 @@ namespace WpfApp1
{ {
InitializeComponent(); InitializeComponent();
} }
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //ManagerUser lié à celui de l'app
public Manager Mgr => (Application.Current as App).LeManager; public Manager Mgr => (Application.Current as App).LeManager; //Manager lié à celui de l'app
private Requin _requin; private Requin _requin;
public Requin requin public Requin requin //le requin qui permet de changer l'affichage de la page
{ {
get { return _requin; } get { return _requin; }
set set
@ -46,27 +47,47 @@ namespace WpfApp1
public int cmp = 0; public int cmp = 0;
/// <summary>
/// Evénement qui permet de changer le content control de la main window
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void exit_Click(object sender, RoutedEventArgs e) private void exit_Click(object sender, RoutedEventArgs e)
{ {
//Change le content control en UserControlAcceuil
((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapAcc(); ((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapAcc();
} }
/// <summary>
/// Evénement qui soit change le content control de la main window soit ouvre la page SeConnecter
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void edit_Click(object sender, RoutedEventArgs e) private void edit_Click(object sender, RoutedEventArgs e)
{ {
//Test si l'utilisateur est connecté
if (MgrUser.SelectedUser == null) if (MgrUser.SelectedUser == null)
{ {
//Si il ne l'est pas alors ouvrir la page SeConnecter
MessageBox.Show("Vous avez besoin d'être connecté pour accéder à cette fonctionnalité"); MessageBox.Show("Vous avez besoin d'être connecté pour accéder à cette fonctionnalité");
var seConnecter = new SeConnecter(); var seConnecter = new SeConnecter();
seConnecter.ShowDialog(); seConnecter.ShowDialog();
} }
else else
{ {
//Si il l'est changer le content control en UserControlEdit
((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapEdit(requin); ((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapEdit(requin);
} }
} }
/// <summary>
/// Méthode qui permet de transformer un url venant d'internet en BitmapImage
/// </summary>
/// <param name="url"></param>
/// <returns>BitmapImage la nouvel BitmapImage créée à partir de du string</returns>
private BitmapImage urlEnBitmap(string url) private BitmapImage urlEnBitmap(string url)
{ {
var path = @url; var path = @url;
@ -77,7 +98,12 @@ namespace WpfApp1
return bitmap; return bitmap;
} }
public void UptadeUi(Requin requin)
/// <summary>
/// Méthode qui permet de mettre à jour l'affichage de la page en fonction du requin
/// </summary>
/// <param name="requin"></param>
private void UptadeUi(Requin requin)
{ {
string url = "Images/" + requin.StatutCons.ToString() + ".png"; string url = "Images/" + requin.StatutCons.ToString() + ".png";
nameReq.Text = requin.Nom; nameReq.Text = requin.Nom;
@ -87,22 +113,24 @@ namespace WpfApp1
funFact.Text = requin.FunFact; funFact.Text = requin.FunFact;
consPic.Source = new BitmapImage(new Uri(url, UriKind.Relative)); consPic.Source = new BitmapImage(new Uri(url, UriKind.Relative));
//La source des vidéos ne peut pas venir d'internet ou de youtube avec plus de temps nous aurions rajouté cette fonctionnalité //La source des vidéos ne peut pas venir d'internet ou de youtube. Avec plus de temps nous aurions rajouté cette fonctionnalité
vid.Source = new Uri(requin.Video, UriKind.Relative); vid.Source = new Uri(requin.Video, UriKind.Relative);
//La source des photos peuvent venir d'internet //La source des photos peuvent venir d'internet
if (requin.Photo.Contains("Images/")) //Vérifie si la photo vient d'internet ou du dossier if (requin.Photo.Contains("Images/")) //Vérifie si la photo vient d'internet ou du dossier
{ {
//Si elle vient du dossier alors la transforme directement en BitmapImage
photo.Source = new BitmapImage(new Uri(requin.Photo, UriKind.RelativeOrAbsolute)); photo.Source = new BitmapImage(new Uri(requin.Photo, UriKind.RelativeOrAbsolute));
} }
else else
{ {
//Sinon appelle la fonction urlEnBitmap
BitmapImage bitmap = new BitmapImage(); BitmapImage bitmap = new BitmapImage();
bitmap = urlEnBitmap(requin.Photo); bitmap = urlEnBitmap(requin.Photo);
photo.Source = bitmap; photo.Source = bitmap;
} }
//Même choses que les tests du dessus
if (requin.PhotoCarte.Contains("Images/")) if (requin.PhotoCarte.Contains("Images/"))
{ {
cartePic.Source = new BitmapImage(new Uri(requin.PhotoCarte, UriKind.RelativeOrAbsolute)); cartePic.Source = new BitmapImage(new Uri(requin.PhotoCarte, UriKind.RelativeOrAbsolute));
@ -116,12 +144,17 @@ namespace WpfApp1
} }
/// <summary>
/// Evénement qui est déclenché lorsque l'on clique sur la vidéo (easter egg)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void vid_MouseDown(object sender, MouseButtonEventArgs e) private void vid_MouseDown(object sender, MouseButtonEventArgs e)
{ {
cmp = cmp+1; cmp = cmp+1;
if (cmp == 10) if (cmp == 10)
{ {
vid.Source = new Uri("Videos/requin_Asley.mp4", UriKind.Relative); vid.Source = new Uri("Videos/requin_Ash ley.mp4", UriKind.Relative);
} }
} }
} }

Loading…
Cancel
Save