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"; } } } }