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.
246 lines
8.0 KiB
246 lines
8.0 KiB
using Business;
|
|
using Modèle;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net.Http;
|
|
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.Navigation;
|
|
using System.Windows.Shapes;
|
|
|
|
|
|
namespace WpfApp1
|
|
{
|
|
|
|
/// <summary>
|
|
/// Classe EditWeGoEventArgs qui implémente EventArgs
|
|
/// Elle permet de créer un argument qui permet de transformer le content control de la main window en UserControlEdit après avoir cliquer sur le bouton Edit
|
|
/// </summary>
|
|
public class EditWeGoEventArgs : EventArgs
|
|
{
|
|
/// <summary>
|
|
/// Le requin que l'on veut passer lors de l'événement
|
|
/// </summary>
|
|
public Requin Requin { get; private set; }
|
|
|
|
/// <summary>
|
|
/// L'Evénement pour changer le content control
|
|
/// </summary>
|
|
/// <param name="requin"></param>
|
|
public EditWeGoEventArgs(Requin requin) => Requin = requin;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Classe AccueilWeGo qui implémente EventArgs
|
|
/// Elle permet de créer un argument qui permet de transformer le content control de la main window en UserControlAccueil après avoir cliquer sur le bouton Exit
|
|
/// </summary>
|
|
public class AccueilWeGoEventArgs : EventArgs
|
|
{
|
|
/// <summary>
|
|
/// La Zone que l'on veut passer lors de l'événement
|
|
/// </summary>
|
|
public Nullable<Zone> Zone { get; private set; }
|
|
|
|
/// <summary>
|
|
/// L'Evénement pour crevenir à la page d'accueil
|
|
/// </summary>
|
|
/// <param name="zone"></param>
|
|
public AccueilWeGoEventArgs(Zone? zone) => Zone = zone;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Logique d'interaction pour userControlDescription.xaml
|
|
/// </summary>
|
|
public partial class userControlDescription : UserControl
|
|
{
|
|
|
|
/// <summary>
|
|
/// UserControl qui affiche la desription d'un requin
|
|
/// </summary>
|
|
public userControlDescription()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
/// <summary>
|
|
/// ManagerUser lié à celui de l'app
|
|
/// </summary>
|
|
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers;
|
|
/// <summary>
|
|
/// Manager lié à celui de l'app
|
|
/// </summary>
|
|
public Manager Mgr => (Application.Current as App).LeManager;
|
|
|
|
private Requin _requin;
|
|
/// <summary>
|
|
/// le requin qui permet de changer l'affichage de la page
|
|
/// </summary>
|
|
public Requin requin
|
|
{
|
|
get { return _requin; }
|
|
set
|
|
{
|
|
_requin = value;
|
|
UptadeUi(_requin);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// La zone de la page principale
|
|
/// </summary>
|
|
public Zone? zone { get; set; }
|
|
|
|
/// <summary>
|
|
/// L'Event handler EditWeGo
|
|
/// </summary>
|
|
public event EventHandler<EditWeGoEventArgs> EditWeGo;
|
|
|
|
/// <summary>
|
|
/// L'événement appelé lors du clique
|
|
/// </summary>
|
|
/// <param name="args"></param>
|
|
protected virtual void OnEditWeGo(EditWeGoEventArgs args)
|
|
=> EditWeGo?.Invoke(this, args);
|
|
|
|
/// <summary>
|
|
/// L'eventhandler AccueilWeGo
|
|
/// </summary>
|
|
public event EventHandler<AccueilWeGoEventArgs> AccueilWeGo;
|
|
|
|
/// <summary>
|
|
/// L'événement appelé lors du clique
|
|
/// </summary>
|
|
/// <param name="args"></param>
|
|
protected virtual void OnAccueilWeGo(AccueilWeGoEventArgs args)
|
|
=> AccueilWeGo?.Invoke(this, args);
|
|
|
|
|
|
/// <summary>
|
|
/// Un compteur
|
|
/// </summary>
|
|
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
|
|
OnAccueilWeGo(new AccueilWeGoEventArgs(zone));
|
|
}
|
|
|
|
|
|
/// <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
|
|
OnEditWeGo(new EditWeGoEventArgs(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;
|
|
BitmapImage bitmap = new BitmapImage();
|
|
bitmap.BeginInit();
|
|
bitmap.UriSource = new Uri(path, UriKind.Absolute);
|
|
bitmap.EndInit();
|
|
return bitmap;
|
|
}
|
|
|
|
|
|
/// <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;
|
|
sciName.Text = requin.NomSci;
|
|
desc.Text = requin.Description;
|
|
|
|
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é
|
|
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));
|
|
}
|
|
else
|
|
{
|
|
BitmapImage bitmap = new BitmapImage();
|
|
bitmap = urlEnBitmap(requin.PhotoCarte);
|
|
cartePic.Source = bitmap;
|
|
}
|
|
|
|
}
|
|
|
|
/// <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_Ashley.mp4", UriKind.Relative);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|