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.
mastermind/Sources/MauiSpark/Pages/ConnexionPage.xaml.cs

66 lines
2.1 KiB

using CoreLibrary.Evenements;
using CoreLibrary.Joueurs;
namespace MauiSpark.Pages;
/// <summary>
/// Page de connexions où l'on rentre les joueurs de la partie
/// </summary>
public partial class ConnexionPage : ContentPage
{
/// <summary>
/// Indice du joueur à rentré
/// </summary>
private int? indice;
/// <summary>
/// Le joueur qui est demandé
/// </summary>
private Joueur? joueurDemande;
/// <summary>
/// Constructeur pour la page de connexions
/// </summary>
public ConnexionPage()
{
NavigationPage.SetHasNavigationBar(this, false);
InitializeComponent();
}
/// <summary>
/// Méthode déclenchée quand l'événement DemanderNom de partie est appelée
/// </summary>
/// <param name="sender">La class qui appelle l'évenement; ici Partie </param>
/// <param name="e">L'instance de l'événement PartieDemanderJoueurEventArgs créée par Partie</param>
public async void QuandDemanderNom(Object? sender, PartieDemanderJoueurEventArgs e)
{
if(Application.Current != null && Application.Current.MainPage != null && ((NavigationPage)Application.Current.MainPage).CurrentPage != this)
await Application.Current.MainPage.Navigation.PushAsync(this);
Nom.Text = "";
indice = e.Indice;
joueurDemande = e.JoueurDemande;
BindingContext = $"Joueur {e.Indice}";
}
/// <summary>
/// Méthode déclenché quand le buton joué est cliqué.
/// </summary>
/// <param name="sender">L'object qui appelle l'évenement; ici le buton SeConnecterPresse</param>
/// <param name="e">L'instance de l'événement EventArgs créée par le systéme</param>
private void QuandSeConnecterPresse(Object sender, EventArgs e)
{
if (joueurDemande == null || indice == null)
return;
if (string.IsNullOrEmpty(Nom.Text))
{
joueurDemande.SeConnecter(new Joueur($"Joueur {indice.Value}"));
}
else
{
joueurDemande.SeConnecter(MauiProgram.Manageur.DemanderJoueur(Nom.Text));
}
}
}