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.Navigation;
using System.Windows.Shapes;
namespace WpfApp1
{
///
/// Classe DescriptionWeGoEventArgs qui implémente EventArgs
/// Elle permet de créer un argument qui permet de transformer le content control de la main window en USerControlDescription après avoir cliquer sur le UserControlRequin
///
public class DescriptionWeGoEventArgs : EventArgs
{
public Requin Requin { get; private set; }
public DescriptionWeGoEventArgs(Requin requin) => Requin = requin;
}
///
/// Logique d'interaction pour UserControlRequin.xaml
///
public partial class UserControlRequin : UserControl
{
public Manager Mgr => (Application.Current as App).LeManager;
public UserControlRequin()
{
InitializeComponent();
}
///
/// Event Handler de DescriptionWeGoEventArgs
///
public event EventHandler DescriptionWeGo;
//L'événement qui permet de passer à l'UserControlDescription
protected virtual void OnDescriptionWeGo(DescriptionWeGoEventArgs args)
=> DescriptionWeGo?.Invoke(this, args);
///
/// Evénement qui est déclencher quand l'utilisateur clique sur l'userControl
///
///
///
public void UserControlReq_MouseDown(object sender, MouseButtonEventArgs e)
{
Mgr.SelectedRequin = requin;
if (type == UCrequinType.normal)
{
OnDescriptionWeGo(new DescriptionWeGoEventArgs(requin)); //Déclenche l'événement OnDescriptionWeGo
}
else if (type == UCrequinType.edit)
{
var descEdit = new DescriptionEdit { requin = requin, requinOld = Mgr.GetRequin(requin) }; //Ouvre la page DescriptionEdit
descEdit.ShowDialog();
}
else if (type == UCrequinType.add)
{
var descAdd = new DescriptionAdd { requin = requin }; //Ouvre la page DescriptionAdd
descAdd.ShowDialog();
}
}
private Requin _requin;
public Requin requin
{
get { return _requin; }
set {
_requin = value;
uptadeUi(_requin);
}
}
public UCrequinType type;
///
/// Méthode qui permet de mettre à jour l'affichage de l'userControl
///
///
public void uptadeUi(Requin requin)
{
nameReq.Text = requin.Nom;
sciName.Text = requin.NomSci;
var url = "@" + requin.Photo;
//Test si l'image viens du dossier Image ou d'internet
if (requin.Photo.Contains("Images/"))
{
image.Source = new BitmapImage(new Uri(requin.Photo, UriKind.Relative));
}
else
{
var pathPhoto = @requin.Photo;
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(pathPhoto, UriKind.Absolute);
bitmap.EndInit();
image.Source = bitmap;
}
}
}
}