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.

119 lines
3.7 KiB

using CanYouBuildIt.Model;
using System.Diagnostics;
namespace CanYouBuildIt.Views;
public partial class Acceuil : ContentPage
{
public Manager manager => (App.Current as App).manager; //Permet d'acceder à toutes les valeurs sauvegarder de l'app
bool connecte = false; //Permet de vérifier si un utilisateur est connecter (pour par exemple acceder à ses favoris
int user; //Adresse de l'utilisateur connecter dans la liste d'utilisateur du manager
//Constructeur par default utiliser lors de l'ouverture de l'app
public Acceuil()
{
InitializeComponent();
BindingContext = manager;
showGrid();
}
//Constructeur utiliser lors de la connexion d'un utilisateur.
public Acceuil(int iduser)
{
InitializeComponent();
BindingContext = manager;
connecte = true;
user = iduser;
string userN = manager.listUtil[user].username;
Log.Text = userN;
showGrid();
}
//Ancien test
/*public void AddUtilisater(object sender, EventArgs e)
{
Utilisateur utilisateur = new Utilisateur("Util1","pdm1");
Debug.WriteLine("Utilisateur créé");
}*/
//Vérifie si l'utilisateur et connecter puis empile la fenetre des favoris de l'utilisateur
public async void NavFav(object sender, EventArgs e)
{
if (connecte)
await Navigation.PushAsync(new Favoris(user));
else
{
aConnecter.IsVisible = true;
await Task.Delay(3000);
aConnecter.IsVisible = false;
}
}
//Empile la fenetre des credits
public async void NavCreds(object sender, EventArgs e)
{
await Navigation.PushAsync(new Credits());
}
//Empile la fenetre de connexion
public async void NavLogin(object sender, EventArgs e)
{
await Navigation.PushAsync(new Login());
}
//Empile la fenetre d'un pc
public async void NavOrdi(object sender, EventArgs e)
{
// Récupérer l'ImageButton qui a déclenché l'événement
ImageButton imageButton = (ImageButton)sender;
// Récupérer l'objet Build associé à l'image cliquée
Build build = (Build)imageButton.BindingContext;
// Accéder à la propriété id de l'objet Build
int id = build.id;
if (connecte)
await Navigation.PushAsync(new Ordinateur(id,user));
else
await Navigation.PushAsync(new Ordinateur(id));
}
//Ferme l'application
public void ToQuit(object sender, EventArgs e)
{
App.Current.Quit();
}
//Permet d'afficher les pc selon leur nombre dans la grid de ma page d'accueil
public void showGrid()
{
int row = 0;
for (int i = 0; i < 7 && i < manager.listBuild.Count(); ++i)
{
if (i % 2 == 0)
row = 0;
else
row = 1;
ImageButton imagebtn = new ImageButton()
{
Source = manager.listBuild[i].image,
BackgroundColor = Color.FromHex("#119FA8"),
BindingContext = manager.listBuild[i],
CornerRadius = 10,
HeightRequest = 200,
Margin = new Thickness(1.5,0,1.5,0)
};
imagebtn.Clicked += NavOrdi;
//Défini la case de la grille ou sera l'image
Grid.SetRow(imagebtn, row);
Grid.SetColumn(imagebtn, i);
//Met l'image dans la grille
gridacc.Children.Add(imagebtn);
}
}
}