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/DescriptionEdit.xaml.cs

201 lines
6.7 KiB

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
{
/// <summary>
/// Logique d'interaction pour DescriptionEdit.xaml
/// </summary>
public partial class DescriptionEdit : Window
{
/// <summary>
/// Page qui affiche la description d'un requins de la liste des requins modifiés avec la description du requin de base
/// </summary>
public DescriptionEdit()
{
InitializeComponent();
}
/// <summary>
/// Manager lié à celui de l'app
/// </summary>
public Manager Mgr => (Application.Current as App).LeManager;
private Requin _requin;
/// <summary>
/// requin sur lequel se base l'affichage de la partie droite de la page
/// </summary>
public Requin requin
{
get { return _requin; }
set
{
_requin = value;
uptadeUi(_requin);
}
}
private Requin _requinOld;
/// <summary>
/// requin sur lequel se base l'affichage de la partie gauche de la page
/// </summary>
public Requin requinOld
{
get { return _requinOld; }
set
{
_requinOld = value;
uptadeUiOld(_requinOld);
}
}
/// <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;
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(path, UriKind.Absolute);
bitmap.EndInit();
return bitmap;
}
/// <summary>
/// Méthode qui met à jour toutes les informations de la partie droite grace au requin
/// </summary>
/// <param name="requin"></param>
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;
}
}
/// <summary>
/// Fait la même chose que updateUi mais pour l'ancien requin donc la partie gauche
/// </summary>
/// <param name="oldRequin"></param>
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;
}
}
/// <summary>
/// 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
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void remplacer_Click(object sender, RoutedEventArgs e)
{
Mgr.ModifieRequin(requinOld, requin);
Mgr.SupprimerRequinEdit(requin);
Close();
}
/// <summary>
/// Evénement qui permet de refuser la modification et donc supprime le requin de la liste des requins modifiés
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void garder_Click(object sender, RoutedEventArgs e)
{
Mgr.SupprimerRequinEdit(requin);
Close();
}
/// <summary>
/// Evénement qui permet de quitter la page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void exit_Click(object sender, RoutedEventArgs e)
{
Close();
}
}
}