You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CShark/WpfApp1/AddAShark.xaml.cs

181 lines
6.4 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Business;
using Modèle;
namespace WpfApp1
{
/// <summary>
/// Logique d'interaction pour AddAShark.xaml
/// </summary>
public partial class AddAShark : Window
{
/// <summary>
/// Page qui permet à un utilisateur d'ajouter un requin
/// </summary>
public AddAShark()
{
InitializeComponent();
DataContext = Mgr;
}
/// <summary>
/// Manager lié à celui de l'app
/// </summary>
public Manager Mgr => (Application.Current as App).LeManager;
/// <summary>
/// ManagerUser lié à celui de l'app
/// </summary>
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers;
private List<Conservation> consList = new List<Conservation> //List<Conservation> contenant toutes les conservations
{
Conservation.EX,
Conservation.EW,
Conservation.CR,
Conservation.EN,
Conservation.VU,
Conservation.NT,
Conservation.LC,
Conservation.DD,
Conservation.NE
};
/// <summary>
/// Evénement ExitClick qui permet de quitter la page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void exit_Click(object sender, RoutedEventArgs e)
{
Close();
}
/// <summary>
/// Evénement SubmitClick qui permet d'ajouter un requin depuis la page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void submit_Click(object sender, RoutedEventArgs e)
{
//Récupération de toutes les valeurs rentrées par l'utilisateur
Conservation cons = new Conservation();
List<Zone> lesZones = new List<Zone>();
string nom = name.LeContenu.Text;
string sciNam = sciName.LeContenu.Text;
string descri = desc.LeContenu.Text;
string photo = lienPhoto.LeContenu.Text;
string video = lienVid.LeContenu.Text;
string map = lienMap.LeContenu.Text;
string fun = funny.LeContenu.Text;
int testCons = 0;
//Récupération du statut de conservation rentré par l'utilisateur
foreach (Control control in this.radioButtons.Children)
{
if (control is RadioButton)
{
RadioButton radio = control as RadioButton;
if (radio.IsChecked == true) //Obligation de regardé si c'est ==true car IsChecked return un Nullable
{
if (radio.Content is string radString)
{
foreach (Conservation conserv in consList)
{
if (radString == conserv.ToString())
{
cons = conserv;
testCons = 1; //Permet de savoir que la conservation a bien été rentrée
goto loopEnd; //Permet de sortir de toutes les boucles quand on a trouvé la conservation
}
}
}
}
}
}
loopEnd:
if (!video.Contains("Videos/")) //test si la vidéo vient bien du répetoire Vidéos (Nous n'avons pas eu le temps d'ajouter la fonctionalités pour les vidéos depuis internet)
{
MessageBox.Show("Les vidéos doivent venir obligatoirement du répertoire Videos");
return;
}
//Test pour voir quels zones sont cochées
if (Arct.IsChecked == true)
{
lesZones.Add(Zone.ARCTIQUE);
}
if (Atla.IsChecked == true)
{
lesZones.Add(Zone.ATLANTIQUE);
}
if (Indi.IsChecked == true)
{
lesZones.Add(Zone.INDIEN);
}
if (Paci.IsChecked == true)
{
lesZones.Add(Zone.PACIFIQUE);
}
//Test pour voir si toutes les informations ont été rentrées
if (lesZones.Count() == 0 || Mgr.verifierRequin(nom, sciNam, descri, photo, video, map) == false || testCons==0)
{
MessageBox.Show("Veuillez remplir toutes les informations");
return;
}
else
{
// Test pour voir si la fun fact est vide
if (string.IsNullOrWhiteSpace(fun))
{
//Si elle est vide alors on crée le requin avec la liste de fun facts
Requin requin = new Requin(nom, sciNam, descri, photo, video, map, cons, lesZones, Mgr.FunFacts);
//Test pour savoir si l'utilisateur est un Expert ou un Utilisateur
if (MgrUser.SelectedUser is Utilisateur user)
{
user.AjouterRequin(requin, Mgr.RequinsAdd); //Ajout dans la liste d'ajout
}
else if (MgrUser.SelectedUser is Expert exp)
{
exp.AjouterRequin(requin, Mgr.Requins); //Ajout directement dans la liste de requin validé
}
}
else
{
Requin requin = new Requin(nom, sciNam, descri, photo, video, map, cons, lesZones, fun);
//Pareil que la boucle du dessus
if (MgrUser.SelectedUser is Utilisateur user)
{
user.AjouterRequin(requin, Mgr.RequinsAdd);
}
else if (MgrUser.SelectedUser is Expert exp)
{
exp.AjouterRequin(requin, Mgr.Requins);
}
}
Close();
}
}
}
}