la sauvegarde du dictionnaire des composant dans la classe build ne fonctionne pas

master
Clement LESME 2 years ago
parent e89abf6fbf
commit 1305bfe4ca

@ -6,12 +6,13 @@ namespace CanYouBuildIt;
public partial class App : Application public partial class App : Application
{ {
//public Manager manager { get; private set; } = new Manager(new Stub()); // -- Défini si on charge les données depuis un fichier ou le stub -- //
public Manager manager { get; private set; } = new Manager(new DataContractPersistance.DataContractPers()); public Manager manager { get; private set; } = new Manager(new Stub());
//public Manager manager { get; private set; } = new Manager(new DataContractPersistance.DataContractPers());
public App() public App()
{ {
manager.chargeDonne(); manager.chargeDonne();
//manager.Persi = new DataContractPersistance.DataContractPers(); manager.Persi = new DataContractPersistance.DataContractPers();
manager.sauvegardeDonnee(); manager.sauvegardeDonnee();
Debug.WriteLine(manager.listUtil[0]); Debug.WriteLine(manager.listUtil[0]);
InitializeComponent(); InitializeComponent();

@ -62,6 +62,9 @@
<MauiXaml Update="Views\Login.xaml"> <MauiXaml Update="Views\Login.xaml">
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</MauiXaml> </MauiXaml>
<MauiXaml Update="Views\Ordinateur.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\SignIn.xaml"> <MauiXaml Update="Views\SignIn.xaml">
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</MauiXaml> </MauiXaml>

@ -116,12 +116,5 @@
<d2p1:password>0000</d2p1:password> <d2p1:password>0000</d2p1:password>
<d2p1:username>Kevin</d2p1:username> <d2p1:username>Kevin</d2p1:username>
</d2p1:Utilisateur> </d2p1:Utilisateur>
<d2p1:Utilisateur>
<d2p1:Builds xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" />
<d2p1:listBuild i:nil="true" />
<d2p1:listFav xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" />
<d2p1:password>nouna</d2p1:password>
<d2p1:username>nouna</d2p1:username>
</d2p1:Utilisateur>
</lu> </lu>
</DataToPersist> </DataToPersist>

@ -1,29 +0,0 @@
<Frame>
<VerticalStackLayout>
<Image Source="{Binding manager.listBuild[0].image}"
Grid.Row="0" Grid.Column="0"
HeightRequest="200"/>
<Label Text="{Binding manager.listBuild[0].prix}"/>
</VerticalStackLayout>
</Frame>
<Image Source="pc3.png"
Grid.Row="0" Grid.Column="2"
HeightRequest="200"
/>
<Image Source="pc3.png"
Grid.Row="0" Grid.Column="4"
HeightRequest="200"
/>
<Image Source="pc2.png"
Grid.Row="1" Grid.Column="1"
HeightRequest="200"
/>
<Image Source="pc4.png"
Grid.Row="1" Grid.Column="3"
HeightRequest="200"
/>
<Image Source="pc2.png"
Grid.Row="1" Grid.Column="5"
HeightRequest="200"
/>

@ -15,7 +15,7 @@ namespace CanYouBuildIt.DataContractPersistance
public string FilePath { get; set; } public string FilePath { get; set; }
public string FileName { get; set; } = "UserData.xml"; public string FileName { get; set; } = "UserData.xml";
//Charge les données sauvegardées dans un fichier de format xml
public DataToPersist chargeDonnee() public DataToPersist chargeDonnee()
{ {
//-- Chemin de sauvegarde --// //-- Chemin de sauvegarde --//
@ -36,6 +36,7 @@ namespace CanYouBuildIt.DataContractPersistance
return data; return data;
} }
//Sauvegarde les données dans un fichier de format xml
public void sauvegardeDonnee(DataToPersist data) public void sauvegardeDonnee(DataToPersist data)
{ {
//-- Chemin de sauvegarde --// //-- Chemin de sauvegarde --//

@ -7,6 +7,7 @@ using System.Threading.Tasks;
namespace CanYouBuildIt.DataContractPersistance namespace CanYouBuildIt.DataContractPersistance
{ {
//Crée une structure de donnée pour pouvoir renvoyer plusieurs type à la fois
public class DataToPersist public class DataToPersist
{ {
public List<Utilisateur> lu = new List<Utilisateur>(); public List<Utilisateur> lu = new List<Utilisateur>();

@ -21,10 +21,10 @@ namespace CanYouBuildIt.Model
[DataMember] [DataMember]
public string image { get; private set; } public string image { get; private set; }
[DataMember] [DataMember]
public Dictionary<TypeComposant, Composant> dComp { get; private set;} public Dictionary<TypeComposant, Composant> dComp { get; private set;} //Contient tous les composant d'un build, chacun étant d'un type distinct
//Constructeur de la classe Build qui demande le nom d'une image et les composants du build
public Build(string image,Composant v1, Composant v2, Composant v3, Composant v4, Composant v5, Composant v6, Composant v7, Composant v8 = null, Composant v9 = null, Composant v10 = null) public Build(string image,Composant v1, Composant v2, Composant v3, Composant v4, Composant v5, Composant v6, Composant v7, Composant v8 = null, Composant v9 = null, Composant v10 = null)
{ {
id = nbId; id = nbId;
@ -32,7 +32,7 @@ namespace CanYouBuildIt.Model
this.image = image; this.image = image;
Dictionary<TypeComposant, Composant> dComp = new Dictionary<TypeComposant, Composant>(); Dictionary<TypeComposant, Composant> dComp = new Dictionary<TypeComposant, Composant>();
//-- ajoue de chaque élément + calcule du prix total //Ajoue de chaque élément + calcule du prix total
dComp.Add(v1.type,v1); dComp.Add(v1.type,v1);
prix = prix + v1.prix; prix = prix + v1.prix;
dComp.Add(v2.type,v2); dComp.Add(v2.type,v2);
@ -47,6 +47,7 @@ namespace CanYouBuildIt.Model
prix = prix + v6.prix; prix = prix + v6.prix;
dComp.Add(v7.type,v7); dComp.Add(v7.type,v7);
prix = prix + v7.prix; prix = prix + v7.prix;
//verifie si les valeurs "non obligatoire" ne sois pas null, et les rentre dans le dictionnaire
if (v8 != null) if (v8 != null)
{ {
dComp.Add(v8.type, v8); dComp.Add(v8.type, v8);
@ -63,10 +64,7 @@ namespace CanYouBuildIt.Model
prix = prix + v10.prix; prix = prix + v10.prix;
} }
} }
} }
} }
} }
} }

@ -7,6 +7,7 @@ using System.Threading.Tasks;
namespace CanYouBuildIt.Model namespace CanYouBuildIt.Model
{ {
//Permet de définir strictement les types qu'un Composant peut avoir
public enum TypeComposant public enum TypeComposant
{ {
Boitier, Boitier,

@ -7,6 +7,8 @@ using System.Threading.Tasks;
namespace CanYouBuildIt.Model namespace CanYouBuildIt.Model
{ {
//Permet de donnée un type commun au stub et au DataContractPersi pour pouvoir passer de un à l'autre
//sans changer de type d'attribut dans le manager
public interface IPersistanceManager public interface IPersistanceManager
{ {
public DataToPersist chargeDonnee(); public DataToPersist chargeDonnee();

@ -1,6 +1,7 @@
using CanYouBuildIt.DataContractPersistance; using CanYouBuildIt.DataContractPersistance;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Runtime.Serialization; using System.Runtime.Serialization;
using System.Security.Cryptography; using System.Security.Cryptography;
@ -30,14 +31,18 @@ namespace CanYouBuildIt.Model
Persi = pers; Persi = pers;
} }
//Utilise le chargeDonnee donnée de la persistance (de stub ou de DataContractPersi)
public void chargeDonne() public void chargeDonne()
{ {
DataToPersist donnee = Persi.chargeDonnee(); DataToPersist donnee = Persi.chargeDonnee();
listUtil.AddRange(donnee.lu); listUtil.AddRange(donnee.lu);
listComp.AddRange(donnee.lc); listComp.AddRange(donnee.lc);
listBuild.AddRange(donnee.lb); listBuild.AddRange(donnee.lb);
Debug.WriteLine("srv<wrv<zrev<zrev");
Debug.WriteLine(listBuild[0].dComp);
} }
//Utilise le sauvegardeDonnee donnée de la persistance (de DataContractPersi)
public void sauvegardeDonnee() public void sauvegardeDonnee()
{ {
DataToPersist data = new DataToPersist(); DataToPersist data = new DataToPersist();
@ -47,22 +52,26 @@ namespace CanYouBuildIt.Model
Persi.sauvegardeDonnee(data); Persi.sauvegardeDonnee(data);
} }
//Ajoute l'utilisateur passé en paramètre a la liste d'utilisateur du manager
public int ajouterUtilisateur(Utilisateur utilisateur) public int ajouterUtilisateur(Utilisateur utilisateur)
{ {
listUtil.Add(utilisateur); listUtil.Add(utilisateur);
return listUtil.Count-1 ; return listUtil.Count-1 ;
} }
//Ajoute le composant passé en paramètre a la liste de composant du manager
public void ajouterComposant(Composant composant) public void ajouterComposant(Composant composant)
{ {
listComp.Add(composant); listComp.Add(composant);
} }
//Ajoute le build passé en paramètre a la liste de build du manager
public void ajouterBuild(Build build) public void ajouterBuild(Build build)
{ {
listBuild.Add(build); listBuild.Add(build);
} }
//Permet de savoir si un username existe ou si il est déjà attribué (et return l'indice dans la liste du manager)
public int rechercheUsername(string usern) public int rechercheUsername(string usern)
{ {
for (int i = 0; i < listUtil.Count; i++ ) for (int i = 0; i < listUtil.Count; i++ )
@ -74,6 +83,7 @@ namespace CanYouBuildIt.Model
return -1; return -1;
} }
//Permet de chercher un mot de passe pour savoir si il correspond au bonne utilisateur (et return l'indice dans la liste du manager)
public int recherchePwd(string pwd) public int recherchePwd(string pwd)
{ {
for (int i = 0; i < listUtil.Count; i++) for (int i = 0; i < listUtil.Count; i++)

@ -35,7 +35,7 @@ namespace CanYouBuildIt.Model
lc.Add(new Composant("Kingston Kit mémoire FURY Beast 16 Go (2 x 8 Go) 3200 MHz DDR4 CL16", TypeComposant.RAM, (float)49.99, "https://www.amazon.fr/Kingston-3200MHz-M%C3%A9moire-KF432C16BBK2-16/dp/B097K2WBL3/")); lc.Add(new Composant("Kingston Kit mémoire FURY Beast 16 Go (2 x 8 Go) 3200 MHz DDR4 CL16", TypeComposant.RAM, (float)49.99, "https://www.amazon.fr/Kingston-3200MHz-M%C3%A9moire-KF432C16BBK2-16/dp/B097K2WBL3/"));
lc.Add(new Composant("Crucial BX500 1 To",TypeComposant.SSD,(float)74.95, "https://www.ldlc.com/fiche/PB00281733.html")); lc.Add(new Composant("Crucial BX500 1 To",TypeComposant.SSD,(float)74.95, "https://www.ldlc.com/fiche/PB00281733.html"));
lc.Add(new Composant("Seagate BarraCuda 2 To (ST2000DM005) ", TypeComposant.HDD,(float)62.95, "https://www.ldlc.com/fiche/PB00254339.html")); lc.Add(new Composant("Seagate BarraCuda 2 To (ST2000DM005) ", TypeComposant.HDD,(float)62.95, "https://www.ldlc.com/fiche/PB00254339.html"));
//-- Test pour un deuxième build --//
lc.Add(new Composant("Corsair Vengeance RGB RS 16 Go (2 x 8 Go) DDR4 3200 MHz CL16", TypeComposant.RAM, (float)60.70, "https://www.cdiscount.com/informatique/memoire-ram/memoire-ram-corsair-vengeance-rgb-rs-ddr4/f-10716-cor0840006649007.html?idOffre")); lc.Add(new Composant("Corsair Vengeance RGB RS 16 Go (2 x 8 Go) DDR4 3200 MHz CL16", TypeComposant.RAM, (float)60.70, "https://www.cdiscount.com/informatique/memoire-ram/memoire-ram-corsair-vengeance-rgb-rs-ddr4/f-10716-cor0840006649007.html?idOffre"));
lc.Add(new Composant("Samsung SSD 980 M.2 PCIe NVMe 1 To", TypeComposant.SSD, (float)57.37, "https://www.amazon.fr/s?k=samsung+ssd+980+m.2+pcie+nvme+1to&ref=nb_sb_noss")); lc.Add(new Composant("Samsung SSD 980 M.2 PCIe NVMe 1 To", TypeComposant.SSD, (float)57.37, "https://www.amazon.fr/s?k=samsung+ssd+980+m.2+pcie+nvme+1to&ref=nb_sb_noss"));
lc.Add(new Composant("NZXT H5 Flow Noir", TypeComposant.Boitier, (float)109.36, "https://www.ldlc.com/fiche/PB00532181.html")); lc.Add(new Composant("NZXT H5 Flow Noir", TypeComposant.Boitier, (float)109.36, "https://www.ldlc.com/fiche/PB00532181.html"));

@ -54,8 +54,6 @@
<ColumnDefinition /> <ColumnDefinition />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
</Grid> </Grid>
@ -79,7 +77,7 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Button BackgroundColor="DimGrey" <Button BackgroundColor="DimGrey"
Clicked="NavLogin" Clicked="NavOrdi"
Grid.Row="0" Grid.Column="2" Grid.Row="0" Grid.Column="2"
HorizontalOptions="Center" HorizontalOptions="Center"
Text="Configurateur" Text="Configurateur"

@ -7,10 +7,11 @@ namespace CanYouBuildIt.Views;
public partial class Acceuil : ContentPage public partial class Acceuil : ContentPage
{ {
public Manager manager => (App.Current as App).manager; public Manager manager => (App.Current as App).manager; //Permet d'acceder à toutes les valeurs sauvegarder de l'app
bool connecte = false; bool connecte = false; //Permet de vérifier si un utilisateur est connecter (pour par exemple acceder à ses favoris
int user; 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() public Acceuil()
{ {
InitializeComponent(); InitializeComponent();
@ -18,6 +19,7 @@ public partial class Acceuil : ContentPage
showGrid(); showGrid();
} }
//Constructeur utiliser lors de la connexion d'un utilisateur.
public Acceuil(int iduser) public Acceuil(int iduser)
{ {
InitializeComponent(); InitializeComponent();
@ -37,6 +39,7 @@ public partial class Acceuil : ContentPage
Debug.WriteLine("Utilisateur créé"); 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) public async void NavFav(object sender, EventArgs e)
{ {
if (connecte) if (connecte)
@ -49,21 +52,31 @@ public partial class Acceuil : ContentPage
} }
} }
//Empile la fenetre des credits
public async void NavCreds(object sender, EventArgs e) public async void NavCreds(object sender, EventArgs e)
{ {
await Navigation.PushAsync(new Credits()); await Navigation.PushAsync(new Credits());
} }
//Empile la fenetre de connexion
public async void NavLogin(object sender, EventArgs e) public async void NavLogin(object sender, EventArgs e)
{ {
await Navigation.PushAsync(new Login()); await Navigation.PushAsync(new Login());
} }
//Empile la fenetre d'un pc
public async void NavOrdi(object sender, EventArgs e)
{
await Navigation.PushAsync(new Ordinateur(0));
}
//Ferme l'application
public void ToQuit(object sender, EventArgs e) public void ToQuit(object sender, EventArgs e)
{ {
App.Current.Quit(); App.Current.Quit();
} }
//Permet d'afficher les pc selon leur nombre dans la grid de ma page d'accueil
public void showGrid() public void showGrid()
{ {
int row = 0; int row = 0;
@ -77,15 +90,16 @@ public partial class Acceuil : ContentPage
ImageButton imagebtn = new ImageButton() ImageButton imagebtn = new ImageButton()
{ {
Source = manager.listBuild[i].image, Source = manager.listBuild[i].image,
HeightRequest = 200 BackgroundColor = Color.FromHex("#119FA8"),
CornerRadius = 10,
HeightRequest = 200,
Margin = new Thickness(1.5,0,1.5,0)
}; };
Debug.WriteLine("position :"); //Défini la case de la grille ou sera l'image
Debug.WriteLine(i);
Debug.WriteLine(row);
Grid.SetRow(imagebtn, row); Grid.SetRow(imagebtn, row);
Grid.SetColumn(imagebtn, i); Grid.SetColumn(imagebtn, i);
//Met l'image dans la grille
gridacc.Children.Add(imagebtn); gridacc.Children.Add(imagebtn);
} }

@ -7,23 +7,25 @@ public partial class Credits : ContentPage
InitializeComponent(); InitializeComponent();
} }
//dépile la fenêtre pour retourner à la précédente
public async void BackHome(object sender, EventArgs e) public async void BackHome(object sender, EventArgs e)
{ {
await Navigation.PopAsync(); await Navigation.PopAsync();
} }
// -- Les 3 fonctions suivantes ouvre dans un navigateur les sites internet suivant : -- //
//LDLC
public async void lienLDLC(object sender, EventArgs e) public async void lienLDLC(object sender, EventArgs e)
{ {
await Launcher.OpenAsync(new Uri("https://www.ldlc.com/configurateur/")); await Launcher.OpenAsync(new Uri("https://www.ldlc.com/configurateur/"));
} }
//CanYouRunIt
public async void lienCanYou(object sender, EventArgs e) public async void lienCanYou(object sender, EventArgs e)
{ {
await Launcher.OpenAsync(new Uri("https://www.systemrequirementslab.com/cyri")); await Launcher.OpenAsync(new Uri("https://www.systemrequirementslab.com/cyri"));
} }
//LeDénicheur
public async void lienDenicheur(object sender, EventArgs e) public async void lienDenicheur(object sender, EventArgs e)
{ {
await Launcher.OpenAsync(new Uri("https://ledenicheur.fr/")); await Launcher.OpenAsync(new Uri("https://ledenicheur.fr/"));

@ -12,7 +12,8 @@ public partial class Favoris : ContentPage
user = iduser; user = iduser;
} }
public async void BackHome(object sender, EventArgs e) //dépile la fenêtre pour retourner à la précédente
public async void BackHome(object sender, EventArgs e)
{ {
await Navigation.PopAsync(); await Navigation.PopAsync();
} }

@ -3,13 +3,14 @@ using CanYouBuildIt.Model;
public partial class Login : ContentPage public partial class Login : ContentPage
{ {
public Manager manager => (App.Current as App).manager; public Manager manager => (App.Current as App).manager; //Permet d'acceder à toutes les valeurs sauvegarder de l'app
public Login() public Login()
{ {
InitializeComponent(); InitializeComponent();
} }
//Boutton de confirmation des infos entrée dans les champs
private async void BoutonValider(object sender, EventArgs e) private async void BoutonValider(object sender, EventArgs e)
{ {
error.IsVisible = false; error.IsVisible = false;
@ -18,6 +19,9 @@ public partial class Login : ContentPage
string MdpUlti = Mdp.Text; string MdpUlti = Mdp.Text;
string Name = Nom.Text; string Name = Nom.Text;
//Vérifie si tout les critères sont validé :
//Tous les champs remplis
if (Name == null || MdpUlti == null) if (Name == null || MdpUlti == null)
error.IsVisible = true; error.IsVisible = true;
else else
@ -25,11 +29,13 @@ public partial class Login : ContentPage
int idname = manager.rechercheUsername(Name); int idname = manager.rechercheUsername(Name);
int idmdp = manager.recherchePwd(MdpUlti); int idmdp = manager.recherchePwd(MdpUlti);
//Pseudo et mot de passe existant
if (idname == -1 && idmdp == -1) if (idname == -1 && idmdp == -1)
wrong.IsVisible = true; wrong.IsVisible = true;
//Mot de passe correspondant à l'utilisateur
else if(idname != idmdp) else if(idname != idmdp)
wrong.IsVisible = true; wrong.IsVisible = true;
else if (idname != -1 && idmdp != -1) else
{ {
valide.IsVisible = true; valide.IsVisible = true;
await Task.Delay(1000); await Task.Delay(1000);
@ -39,11 +45,13 @@ public partial class Login : ContentPage
} }
} }
//dépile la fenêtre pour retourner à la précédente
private async void BackHome(object sender, EventArgs e) private async void BackHome(object sender, EventArgs e)
{ {
await Navigation.PopAsync(); await Navigation.PopAsync();
} }
//Empile la fenetre d'Inscription
private async void NavSignIn(object sender, EventArgs e) private async void NavSignIn(object sender, EventArgs e)
{ {
await Navigation.PushAsync(new SignIn()); await Navigation.PushAsync(new SignIn());

@ -0,0 +1,148 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="CanYouBuildIt.Views.Ordinateur"
Title="Ordinateur"
BackgroundColor="#26B4BE">
<VerticalStackLayout>
<ImageButton Source="logoapp.png"
Clicked="BackHome"
MaximumHeightRequest="150"/>
<Grid x:Name="pcG">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Frame BackgroundColor="#16A4AE"
CornerRadius="10"
Grid.Row="0" Grid.Column="0"
HeightRequest="250"
Margin="2,5,2,5">
<Label Text="CPU"
HorizontalOptions="Start"
VerticalOptions="Start">
</Label>
</Frame>
<Frame BackgroundColor="#16A4AE"
CornerRadius="10"
Grid.Row="0" Grid.Column="1"
HeightRequest="250"
Margin="2,5,2,5">
<Label Text="Boitier"
HorizontalOptions="Start"
VerticalOptions="Start">
</Label>
</Frame>
<Frame BackgroundColor="#16A4AE"
CornerRadius="10"
Grid.Row="0" Grid.Column="2"
HeightRequest="250"
Margin="2,5,2,5">
<Label Text="RAM"
HorizontalOptions="Start"
VerticalOptions="Start">
</Label>
</Frame>
<Frame BackgroundColor="#16A4AE"
CornerRadius="10"
Grid.Row="1" Grid.Column="0"
HeightRequest="250"
Margin="2,5,2,5">
<Label Text="GPU"
HorizontalOptions="Start"
VerticalOptions="Start">
</Label>
</Frame>
<Frame BackgroundColor="#16A4AE"
CornerRadius="10"
Grid.Row="1" Grid.Column="2"
HeightRequest="250"
Margin="2,5,2,5">
<Label Text="Ventirad"
HorizontalOptions="Start"
VerticalOptions="Start">
</Label>
</Frame>
<Frame BackgroundColor="#16A4AE"
CornerRadius="10"
Grid.Row="2" Grid.Column="0"
HeightRequest="250"
Margin="2,5,2,5">
<Label Text="CarteMère"
HorizontalOptions="Start"
VerticalOptions="Start">
</Label>
</Frame>
<Frame BackgroundColor="#16A4AE"
CornerRadius="10"
Grid.Row="2" Grid.Column="2"
HeightRequest="250"
Margin="2,5,2,5">
<Label Text="Ventilo"
HorizontalOptions="Start"
VerticalOptions="Start">
</Label>
</Frame>
<Frame BackgroundColor="#16A4AE"
CornerRadius="10"
Grid.Row="3" Grid.Column="0"
HeightRequest="250"
Margin="2,5,2,5">
<Label Text="SSD"
HorizontalOptions="Start"
VerticalOptions="Start">
</Label>
</Frame>
<Frame BackgroundColor="#16A4AE"
CornerRadius="10"
Grid.Row="3" Grid.Column="1"
HeightRequest="250"
Margin="2,5,2,5">
<Label Text="Alimentation"
HorizontalOptions="Start"
VerticalOptions="Start">
</Label>
</Frame>
<Frame BackgroundColor="#16A4AE"
CornerRadius="10"
Grid.Row="3" Grid.Column="2"
HeightRequest="250"
Margin="2,5,2,5">
<Label Text="HDD"
HorizontalOptions="Start"
VerticalOptions="Start">
</Label>
</Frame>
</Grid>
</VerticalStackLayout>
</ContentPage>

@ -0,0 +1,56 @@
using CanYouBuildIt.Model;
using System.Diagnostics;
namespace CanYouBuildIt.Views;
public partial class Ordinateur : ContentPage
{
public Manager manager => (App.Current as App).manager;
//public Dictionary<TypeComposant, Composant> dico = new Dictionary<TypeComposant, Composant>();
public Ordinateur(int IdPc)
{
InitializeComponent();
//dico = manager.listBuild[IdPc].dComp;
Debug.WriteLine("srebvg<srdebvwwdrvg");
Debug.WriteLine(manager.listBuild[IdPc].dComp[TypeComposant.Boitier].id);
fillGrid(IdPc);
}
//dépile la fenêtre pour retourner à la précédente
public async void BackHome(object sender, EventArgs e)
{
await Navigation.PopAsync();
}
public void fillGrid(int Pc)
{
/*
//Défini la case de la grille ou sera l'image
Grid.SetRow(,);
Grid.SetColumn(,);
//Met l'image dans la grille
pcG.Children.Add();
*/
//doit récuperer dico du bon pc via indice manager
//CPU 00, boitier 01, Ram 02
//gpu 10, , Ventirad 12
//carteMère 20, , Ventilo 22
//ssd 30, alim 31 , hdd 32
Label cpu = new Label()
{
//Text = dico[TypeComposant.Processeur].id,
TextColor = Color.FromArgb("#000000")
};
//Défini la case de la grille ou sera l'image
Grid.SetRow(cpu, 0);
Grid.SetColumn(cpu, 0);
//Met l'image dans la grille
pcG.Children.Add(cpu);
}
}

@ -21,14 +21,19 @@ public partial class SignIn : ContentPage
string cMdpUtil = cMdp.Text; string cMdpUtil = cMdp.Text;
string Name = Nom.Text; string Name = Nom.Text;
//Vérifie si tout les critères sont validé :
//Tous les champs remplis
if (Name == null || MdpUtil == null || cMdpUtil ==null) if (Name == null || MdpUtil == null || cMdpUtil ==null)
vide.IsVisible = true; vide.IsVisible = true;
//Aucun autre user avec le même pseudo
else if (manager.rechercheUsername(Name) != -1)
userNameUsed.IsVisible = true;
//Mot de passe de plus de 4 caractères
else if (MdpUtil.Length <4) else if (MdpUtil.Length <4)
wrong.IsVisible=true; wrong.IsVisible=true;
//Mot de passe et confirmation égale
else if (MdpUtil != cMdpUtil) else if (MdpUtil != cMdpUtil)
nequal.IsVisible = true; nequal.IsVisible = true;
else if (manager.rechercheUsername(Name) != -1)
userNameUsed.IsVisible = true;
else else
{ {
valide.IsVisible = true; valide.IsVisible = true;
@ -40,6 +45,7 @@ public partial class SignIn : ContentPage
} }
} }
//dépile la fenêtre pour retourner à la précédente
public async void BackLogin(object sender, EventArgs e) public async void BackLogin(object sender, EventArgs e)
{ {
await Navigation.PopAsync(); await Navigation.PopAsync();

Loading…
Cancel
Save