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 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

@ -26,7 +26,7 @@ namespace WpfApp1
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>

@ -27,7 +27,7 @@ namespace WpfApp1
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>

@ -28,7 +28,7 @@ namespace WpfApp1
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;
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 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

@ -23,7 +23,7 @@ namespace WpfApp1
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()
{
InitializeComponent();

@ -17,6 +17,7 @@ namespace WpfApp1
{
/// <summary>
/// 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>
public partial class UserControlBoite : UserControl
{

@ -32,11 +32,11 @@ namespace WpfApp1
public Manager Mgr => (Application.Current as App).LeManager;
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers;
public Manager Mgr => (Application.Current as App).LeManager; //ManagerUser lié à celui de l'app
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //ManagerUser lié à celui de l'app
private Requin _requin;
public Requin requin
public Requin requin //Requin qui permet de mettre à jour l'affichage de la page
{
get { return _requin; }
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.EW,
@ -61,9 +61,13 @@ namespace WpfApp1
};
public void UptadeUi(Requin requin)
/// <summary>
/// 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;
nomSci.Contenu = requin.NomSci;
desc.Contenu = requin.Description;
@ -72,24 +76,24 @@ namespace WpfApp1
LienMap.Contenu = requin.PhotoCarte;
funFact.Contenu = requin.FunFact;
foreach (Control control in this.radioButtons.Children)
//Boucles qui permettent de cocher le bon radioButton en fonction du status de conservation du requin
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;
goto loopEnd;
radio.IsChecked = true; //Coche le RadioButton
goto loopEnd; //Permet de sortir des boucles quand le radioButton a été coché
}
}
}
}
loopEnd:
//Coche les bonnes zones en fonction de la répartition du requin
foreach (Zone z in requin.Repartition)
{
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)
{
//Change le content control de la main window en UserControlDescription
((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)
{
int test = 0;
//Récupère les informations qu'a rentré l'utilisateur
List<Zone> lesZones = new List<Zone>();
Conservation cons = new Conservation();
string nom = leNom.LeContenu.Text;
@ -129,21 +146,22 @@ namespace WpfApp1
string map = LienMap.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)
{
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())
{
cons = conserv;
test++;
goto loopEnd ;
goto loopEnd ; //Sort des boucles
}
}
}
@ -152,13 +170,14 @@ namespace WpfApp1
}
loopEnd:
//Test si la vidéo vient du répertoire Vidéos
if (!video.Contains("Videos/"))
{
MessageBox.Show("Les vidéos doivent venir obligatoirement du répertoire Videos");
return;
}
//Test quels checkBox sont cochées et ajoute dans la liste de zone du requin les zones cochées
if (Arct.IsChecked == true)
{
lesZones.Add(Zone.ARCTIQUE);
@ -175,23 +194,28 @@ namespace WpfApp1
{
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)
{
MessageBox.Show("Veuillez remplir tout les champs obligatoires");
}
//Test si la fun fact et vide
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);
//Test si l'utilisateur est un Expert ou un Utilisateur
if (MgrUser.SelectedUser is Utilisateur user)
{
//Ajoute le requin dans la liste des requins modifiés
user.AjouterRequin(req, Mgr.RequinsEdit);
}
else
{
//Ajoute le requin dans la liste de requin validés
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);
}
else

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

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

@ -23,7 +23,7 @@ namespace WpfApp1
/// </summary>
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()
{

@ -23,6 +23,7 @@ namespace WpfApp1
{
/// <summary>
/// Logique d'interaction pour userControlDescription.xaml
/// UserControl qui affiche la desription d'un requin
/// </summary>
public partial class userControlDescription : UserControl
{
@ -30,11 +31,11 @@ namespace WpfApp1
{
InitializeComponent();
}
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers;
public Manager Mgr => (Application.Current as App).LeManager;
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; //ManagerUser lié à celui de l'app
public Manager Mgr => (Application.Current as App).LeManager; //Manager lié à celui de l'app
private Requin _requin;
public Requin requin
public Requin requin //le requin qui permet de changer l'affichage de la page
{
get { return _requin; }
set
@ -46,27 +47,47 @@ namespace WpfApp1
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)
{
//Change le content control en UserControlAcceuil
((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)
{
//Test si l'utilisateur est connecté
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é");
var seConnecter = new SeConnecter();
seConnecter.ShowDialog();
}
else
{
//Si il l'est changer le content control en UserControlEdit
((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)
{
var path = @url;
@ -77,7 +98,12 @@ namespace WpfApp1
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";
nameReq.Text = requin.Nom;
@ -87,22 +113,24 @@ namespace WpfApp1
funFact.Text = requin.FunFact;
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);
//La source des photos peuvent venir d'internet
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));
}
else
{
//Sinon appelle la fonction urlEnBitmap
BitmapImage bitmap = new BitmapImage();
bitmap = urlEnBitmap(requin.Photo);
photo.Source = bitmap;
}
//Même choses que les tests du dessus
if (requin.PhotoCarte.Contains("Images/"))
{
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)
{
cmp = cmp+1;
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