using Business;
using Modèle;
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;
namespace WpfApp1
{
///
/// Logique d'interaction pour DescriptionEdit.xaml
///
public partial class DescriptionEdit : Window
{
///
/// Page qui affiche la description d'un requins de la liste des requins modifiés avec la description du requin de base
///
public DescriptionEdit()
{
InitializeComponent();
}
///
/// Manager lié à celui de l'app
///
public Manager Mgr => (Application.Current as App).LeManager;
private Requin _requin;
///
/// requin sur lequel se base l'affichage de la partie droite de la page
///
public Requin requin
{
get { return _requin; }
set
{
_requin = value;
uptadeUi(_requin);
}
}
private Requin _requinOld;
///
/// requin sur lequel se base l'affichage de la partie gauche de la page
///
public Requin requinOld
{
get { return _requinOld; }
set
{
_requinOld = value;
uptadeUiOld(_requinOld);
}
}
///
/// Méthode qui permet de transformer un url venant d'internet en BitmapImage
///
///
/// BitmapImage la nouvel BitmapImage créée à partir de du string
private BitmapImage urlEnBitmap(string url)
{
var path = @url;
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(path, UriKind.Absolute);
bitmap.EndInit();
return bitmap;
}
///
/// Méthode qui met à jour toutes les informations de la partie droite grace au requin
///
///
private void uptadeUi(Requin requin)
{
string url = "Images/" + requin.StatutCons.ToString() + ".png"; //Transforme la conservation en chemin pour l'image liée à cette conservation
//Met à jour tous texteBlocks
nameReq.Text = requin.Nom;
sciName.Text = requin.NomSci;
desc.Text = requin.Description;
vid.Source = new Uri(requin.Video, UriKind.RelativeOrAbsolute);
funFact.Text = requin.FunFact;
consPic.Source = new BitmapImage(new Uri(url, UriKind.RelativeOrAbsolute));
if (requin.Photo.Contains("Images/")) //Vérifie si la photo vient d'internet ou du dossier
{
//Si elle vient d'internet alors on 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;
}
//Pareil que les tests du dessus
if (requin.PhotoCarte.Contains("Images/"))
{
cartePic.Source = new BitmapImage(new Uri(requin.PhotoCarte, UriKind.RelativeOrAbsolute));
}
else
{
BitmapImage bitmap = new BitmapImage();
bitmap = urlEnBitmap(requin.PhotoCarte);
cartePic.Source = bitmap;
}
}
///
/// Fait la même chose que updateUi mais pour l'ancien requin donc la partie gauche
///
///
private void uptadeUiOld(Requin oldRequin)
{
string url = "Images/" + oldRequin.StatutCons.ToString() + ".png";
nameReqOld.Text = oldRequin.Nom;
sciNameOld.Text = oldRequin.NomSci;
descOld.Text = oldRequin.Description;
vidOld.Source = new Uri(oldRequin.Video, UriKind.Relative);
funFactOld.Text = oldRequin.FunFact;
consPicOld.Source = new BitmapImage(new Uri(url, UriKind.Relative));
if (requin.Photo.Contains("Images/")) //Vérifie si la photo vient d'internet ou du dossier
{
photoOld.Source = new BitmapImage(new Uri(requinOld.Photo, UriKind.RelativeOrAbsolute));
}
else
{
BitmapImage bitmap = new BitmapImage();
bitmap = urlEnBitmap(requinOld.Photo);
photoOld.Source = bitmap;
}
if (requin.PhotoCarte.Contains("Images/"))
{
cartePicOld.Source = new BitmapImage(new Uri(requinOld.PhotoCarte, UriKind.RelativeOrAbsolute));
}
else
{
BitmapImage bitmap = new BitmapImage();
bitmap = urlEnBitmap(requinOld.PhotoCarte);
cartePicOld.Source = bitmap;
}
}
///
/// Evénement qui permet de modifier l'ancien requin en le remplaçant par le nouveau et donc l'enlève de la liste des requins modifiés et le rajoute dans la lsite des requins validés
///
///
///
private void remplacer_Click(object sender, RoutedEventArgs e)
{
Mgr.ModifieRequin(requinOld, requin);
Mgr.SupprimerRequinEdit(requin);
Close();
}
///
/// Evénement qui permet de refuser la modification et donc supprime le requin de la liste des requins modifiés
///
///
///
private void garder_Click(object sender, RoutedEventArgs e)
{
Mgr.SupprimerRequinEdit(requin);
Close();
}
///
/// Evénement qui permet de quitter la page
///
///
///
private void exit_Click(object sender, RoutedEventArgs e)
{
Close();
}
}
}