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