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

228 lines
7.6 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.Navigation;
using System.Windows.Shapes;
namespace WpfApp1
{
/// <summary>
/// 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
/// </summary>
public class AccueilWeChangeEventArgs : EventArgs
{
/// <summary>
/// Zone la zone que l'on transmettra avec l'événement
/// </summary>
public Zone Zone { get; private set; }
/// <summary>
/// L'Evénement pour changer la zone de l'accueil
/// </summary>
/// <param name="zone"></param>
public AccueilWeChangeEventArgs(Zone zone) => Zone = zone;
}
/// <summary>
/// Logique d'interaction pour userControlAcceuil.xaml
/// </summary>
public partial class userControlAcceuil : UserControl
{
/// <summary>
/// ManagerUser lié à celui de l'app
/// </summary>
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers;
/// <summary>
/// UserControl qui permet d'afficher la carte du monde et le bandeau de l'application
/// </summary>
public userControlAcceuil()
{
InitializeComponent();
}
/// <summary>
/// string qui permet de modifier directement la source de l'image
/// </summary>
public string Carte
{
set
{
laCarte.Source = new BitmapImage(new Uri(value, UriKind.Relative));
}
}
private Nullable<Zone> _zone;
/// <summary>
/// Zone qui permet d'appeler la méthode choixCarte quand elle est modifiée
/// </summary>
public Nullable<Zone> zone
{
get { return _zone; }
set
{
_zone = value;
choixCarte(_zone);
}
}
/// <summary>
/// Event Handler de DescriptionWeGoEventArgs
/// </summary>
public event EventHandler<AccueilWeChangeEventArgs> AccueilWeChange;
/// <summary>
/// L'événement qui permet de passer à l'UserControlDescription
/// </summary>
/// <param name="args"></param>
protected virtual void OnAccueilWeChange(AccueilWeChangeEventArgs args)
=> AccueilWeChange?.Invoke(this, args);
/// <summary>
/// Evénement qui permet d'ouvrir la page AddAShark
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
}
/// <summary>
/// Evénement qui permet d'ouvrir soit la page CreerCompte soit InfoUtilisateur
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
}
/// <summary>
/// Evénement qui est déclenché lorsque l'utilisateur appouye sur une partie de la carte correspondant à l'océan Arctique
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Arctique_MouseDown(object sender, MouseButtonEventArgs e)
{
//Appelle la fonction ChangeRegionAvecMap de la main window
OnAccueilWeChange(new AccueilWeChangeEventArgs(Zone.ARCTIQUE));
}
/// <summary>
/// Evénement qui est déclenché lorsque l'utilisateur appouye sur une partie de la carte correspondant à l'océan Atlantique
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Atlantique_MouseDown(object sender, MouseButtonEventArgs e)
{
//Appelle la fonction ChangeRegionAvecMap de la main window
OnAccueilWeChange(new AccueilWeChangeEventArgs(Zone.ATLANTIQUE));
}
/// <summary>
/// Evénement qui est déclenché lorsque l'utilisateur appouye sur une partie de la carte correspondant à l'océan Indien
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Indien_MouseDown(object sender, MouseButtonEventArgs e)
{
//Appelle la fonction ChangeRegionAvecMap de la main window
OnAccueilWeChange(new AccueilWeChangeEventArgs(Zone.INDIEN));
}
/// <summary>
/// Evénement qui est déclenché lorsque l'utilisateur appouye sur une partie de la carte correspondant à l'océan Pacifique
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Pacifique_MouseDown(object sender, MouseButtonEventArgs e)
{
//Appelle la fonction ChangeRegionAvecMap de la main window
OnAccueilWeChange(new AccueilWeChangeEventArgs(Zone.PACIFIQUE));
}
/// <summary>
/// Méthode qui permet de changer la source de la carte en fonction de la zone donnée en paramètre
/// </summary>
/// <param name="zone"></param>
private void choixCarte(Nullable<Zone> 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";
}
}
}
}