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 AccueilnWeChangeEventArgs 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 la carte
///
public class AccueilWeChangeEventArgs : EventArgs
{
///
/// Zone la zone que l'on transmettra avec l'événement
///
public Zone Zone { get; private set; }
///
/// L'Evénement pour changer la zone de l'accueil
///
///
public AccueilWeChangeEventArgs(Zone zone) => Zone = zone;
}
///
/// Logique d'interaction pour userControlAcceuil.xaml
///
public partial class userControlAcceuil : UserControl
{
///
/// ManagerUser lié à celui de l'app
///
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers;
///
/// UserControl qui permet d'afficher la carte du monde et le bandeau de l'application
///
public userControlAcceuil()
{
InitializeComponent();
}
///
/// string qui permet de modifier directement la source de l'image
///
public string Carte
{
set
{
laCarte.Source = new BitmapImage(new Uri(value, UriKind.Relative));
}
}
private Nullable _zone;
///
/// Zone qui permet d'appeler la méthode choixCarte quand elle est modifiée
///
public Nullable zone
{
get { return _zone; }
set
{
_zone = value;
choixCarte(_zone);
}
}
///
/// Event Handler de DescriptionWeGoEventArgs
///
public event EventHandler AccueilWeChange;
///
/// L'événement qui permet de passer à l'UserControlDescription
///
///
protected virtual void OnAccueilWeChange(AccueilWeChangeEventArgs args)
=> AccueilWeChange?.Invoke(this, args);
///
/// Evénement qui permet d'ouvrir la page AddAShark
///
///
///
private void add_Click(object sender, RoutedEventArgs e)
{
//Test pour voir si l'utilisateur est connecté
if (MgrUser.SelectedUser == null)
{
MessageBox.Show("Vous avez besoin d'être connecté pour accéder à cette fonctionnalité");
var seConnecter = new SeConnecter();
seConnecter.ShowDialog();
}
//Test pour voir si c'est un Utilisateur
else if (MgrUser.SelectedUser is Utilisateur)
{
var addSharkWindow = new AddAShark();
addSharkWindow.ShowDialog();
}
//Test pour voir si c'est un Expert pour ouvrir la page ValiderSubmit au lieu de AddAShark
else if (MgrUser.SelectedUser is Expert)
{
var validerSumbit = new ValiderSubmit();
validerSumbit.ShowDialog();
}
}
///
/// Evénement qui permet d'ouvrir soit la page CreerCompte soit InfoUtilisateur
///
///
///
private void Inscription_Click(object sender, RoutedEventArgs e)
{
//Test pour voir si l'utilisateur est connecté
if (MgrUser.SelectedUser == null)
{
//Si il ne l'est pas ouvre la page CreerCompte
var inscrireWindow = new CreerCompte();
inscrireWindow.ShowDialog();
}
else
{
//Si il l'est ouvre la page InfoUtilisateur
var infoUser = new InfoUtilisateur{ pers = MgrUser.SelectedUser };
infoUser.ShowDialog();
}
}
///
/// Evénement qui est déclenché lorsque l'utilisateur appouye sur une partie de la carte correspondant à l'océan Arctique
///
///
///
private void Arctique_MouseDown(object sender, MouseButtonEventArgs e)
{
//Appelle la fonction ChangeRegionAvecMap de la main window
OnAccueilWeChange(new AccueilWeChangeEventArgs(Zone.ARCTIQUE));
}
///
/// Evénement qui est déclenché lorsque l'utilisateur appouye sur une partie de la carte correspondant à l'océan Atlantique
///
///
///
private void Atlantique_MouseDown(object sender, MouseButtonEventArgs e)
{
//Appelle la fonction ChangeRegionAvecMap de la main window
OnAccueilWeChange(new AccueilWeChangeEventArgs(Zone.ATLANTIQUE));
}
///
/// Evénement qui est déclenché lorsque l'utilisateur appouye sur une partie de la carte correspondant à l'océan Indien
///
///
///
private void Indien_MouseDown(object sender, MouseButtonEventArgs e)
{
//Appelle la fonction ChangeRegionAvecMap de la main window
OnAccueilWeChange(new AccueilWeChangeEventArgs(Zone.INDIEN));
}
///
/// Evénement qui est déclenché lorsque l'utilisateur appouye sur une partie de la carte correspondant à l'océan Pacifique
///
///
///
private void Pacifique_MouseDown(object sender, MouseButtonEventArgs e)
{
//Appelle la fonction ChangeRegionAvecMap de la main window
OnAccueilWeChange(new AccueilWeChangeEventArgs(Zone.PACIFIQUE));
}
///
/// Méthode qui permet de changer la source de la carte en fonction de la zone donnée en paramètre
///
///
private void choixCarte(Nullable zone)
{
if (zone == null)
{
Carte = "Images/cartemaismieuxman.png";
}
else if (zone == Zone.ATLANTIQUE)
{
Carte = "Images/carteAtlantique.png";
}
else if(zone == Zone.ARCTIQUE)
{
Carte = "Images/carteArctique.png";
}
else if(zone == Zone.INDIEN)
{
Carte = "Images/carteIndien.png";
}
else if(zone == Zone.PACIFIQUE)
{
Carte = "Images/cartePacifique.png";
}
}
}
}