using Models;
using System.Diagnostics;

namespace LOLAPP.View
{
    public partial class Strat : ContentPage
    {
        /// <summary>
        /// Liste des stratégies.
        /// </summary>
        public List<Strategie> StratList { get; set; }

        /// <summary>
        /// Gestionnaire de champion et d'utilisateur.
        /// </summary>
        public Manager Mgr => (App.Current as App).MyManager;

        /// <summary>
        /// Constructeur de la classe Strat.
        /// </summary>
        public Strat()
        {
            InitializeComponent();

            // Initialisez la liste des stratégies
            if (Mgr.UtilisateurConnecte != null)
            {
                StratList = Mgr.UtilisateurConnecte._strat;
            }
            else
            {
                StratList = null;
            }

            // Définissez le contexte de liaison de la collection sur cette page
            BindingContext = this;
        }

        /// <summary>
        /// Gestionnaire de l'événement lorsqu'on clique sur le bouton AddButton.
        /// </summary>
        /// <param name="sender">L'objet déclencheur de l'événement.</param>
        /// <param name="e">Les arguments de l'événement.</param>
        private void AddButton_Clicked(object sender, EventArgs e)
        {
            // Créer une nouvelle instance de Strategie et l'ajouter à StratList
            List<Champion> champ = new List<Champion>();
            champ.Add(Mgr._champions[0]);
            champ.Add(Mgr._champions[1]);
            champ.Add(Mgr._champions[2]);
            champ.Add(Mgr._champions[3]);
            champ.Add(Mgr._champions[4]);
            Strategie nouvelleStrategie = new Strategie("test", "allllooo", champ);
            StratList.Add(nouvelleStrategie);

            // Faire défiler la ListView vers le nouvel élément ajouté
            stratListView.ScrollTo(nouvelleStrategie, ScrollToPosition.End, true);
        }

        /// <summary>
        /// Gestionnaire de l'événement lorsqu'on clique sur le bouton DeleteButton.
        /// </summary>
        /// <param name="sender">L'objet déclencheur de l'événement.</param>
        /// <param name="e">Les arguments de l'événement.</param>
        private void DeleteButton_Clicked(object sender, EventArgs e)
        {
            var button = (Button)sender;
            var strat = (Strategie)button.CommandParameter;

            // Gérez la suppression de la stratégie spécifiée ici
            // Exemple : StratList.Remove(strat);
        }
    }
}
