liste build fonctionne, stub a compléter

master
Clement LESME 2 years ago
parent 1305bfe4ca
commit 511037f8b3

@ -2,13 +2,186 @@
<DataToPersist xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CanYouBuildIt.DataContractPersistance">
<lb xmlns:d2p1="http://schemas.datacontract.org/2004/07/CanYouBuildIt.Model">
<d2p1:Build>
<d2p1:dComp xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" />
<d2p1:dComp xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>Boitier</d4p1:Key>
<d4p1:Value>
<d2p1:id>Zalman Z10 Plus</d2p1:id>
<d2p1:lien>https://www.ldlc.com/fiche/PB00502897.html</d2p1:lien>
<d2p1:prix>119.95</d2p1:prix>
<d2p1:type>Boitier</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>Processeur</d4p1:Key>
<d4p1:Value>
<d2p1:id>Ryzen 5 5800X</d2p1:id>
<d2p1:lien>https://www.amazon.fr/AMD-Ryzen-7-5800X-RyzenTM/dp/B0815XFSGK/</d2p1:lien>
<d2p1:prix>218.98</d2p1:prix>
<d2p1:type>Processeur</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>Ventirad</d4p1:Key>
<d4p1:Value>
<d2p1:id>Cooler Master MasterLiquid ML240L V2 ARGB Black Edition </d2p1:id>
<d2p1:lien>https://www.ldlc.com/fiche/PB00454454.html</d2p1:lien>
<d2p1:prix>89.95</d2p1:prix>
<d2p1:type>Ventirad</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>CarteMere</d4p1:Key>
<d4p1:Value>
<d2p1:id>Gigabyte B550M AORUS ELITE </d2p1:id>
<d2p1:lien>https://www.ldlc.com/fiche/PB00357556.html</d2p1:lien>
<d2p1:prix>129.95</d2p1:prix>
<d2p1:type>CarteMere</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>Alimentation</d4p1:Key>
<d4p1:Value>
<d2p1:id>be quiet! Pure Power 11 600W 80PLUS Gold</d2p1:id>
<d2p1:lien>https://www.ldlc.com/fiche/PB00261005.html</d2p1:lien>
<d2p1:prix>93.95</d2p1:prix>
<d2p1:type>Alimentation</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>CarteGraphique</d4p1:Key>
<d4p1:Value>
<d2p1:id>ASUS RTX 3060</d2p1:id>
<d2p1:lien>https://www.amazon.fr/ASUS-DUAL-NVIDIA-GeForce-GDDR6/dp/B096658ZWP</d2p1:lien>
<d2p1:prix>453.99</d2p1:prix>
<d2p1:type>CarteGraphique</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>RAM</d4p1:Key>
<d4p1:Value>
<d2p1:id>Kingston Kit mémoire FURY Beast 16 Go (2 x 8 Go) 3200 MHz DDR4 CL16</d2p1:id>
<d2p1:lien>https://www.amazon.fr/Kingston-3200MHz-M%C3%A9moire-KF432C16BBK2-16/dp/B097K2WBL3/</d2p1:lien>
<d2p1:prix>49.99</d2p1:prix>
<d2p1:type>RAM</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>SSD</d4p1:Key>
<d4p1:Value>
<d2p1:id>Crucial BX500 1 To</d2p1:id>
<d2p1:lien>https://www.ldlc.com/fiche/PB00281733.html</d2p1:lien>
<d2p1:prix>74.95</d2p1:prix>
<d2p1:type>SSD</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>HDD</d4p1:Key>
<d4p1:Value>
<d2p1:id>Seagate BarraCuda 2 To (ST2000DM005) </d2p1:id>
<d2p1:lien>https://www.ldlc.com/fiche/PB00254339.html</d2p1:lien>
<d2p1:prix>62.95</d2p1:prix>
<d2p1:type>HDD</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
</d2p1:dComp>
<d2p1:id>0</d2p1:id>
<d2p1:image>pc1.png</d2p1:image>
<d2p1:prix>1294.6599</d2p1:prix>
</d2p1:Build>
<d2p1:Build>
<d2p1:dComp xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" />
<d2p1:dComp xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>Boitier</d4p1:Key>
<d4p1:Value>
<d2p1:id>NZXT H5 Flow Noir</d2p1:id>
<d2p1:lien>https://www.ldlc.com/fiche/PB00532181.html</d2p1:lien>
<d2p1:prix>109.36</d2p1:prix>
<d2p1:type>Boitier</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>Processeur</d4p1:Key>
<d4p1:Value>
<d2p1:id>Ryzen 5 5800X</d2p1:id>
<d2p1:lien>https://www.amazon.fr/AMD-Ryzen-7-5800X-RyzenTM/dp/B0815XFSGK/</d2p1:lien>
<d2p1:prix>218.98</d2p1:prix>
<d2p1:type>Processeur</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>Ventirad</d4p1:Key>
<d4p1:Value>
<d2p1:id>Cooler Master MasterLiquid ML240L V2 ARGB Black Edition </d2p1:id>
<d2p1:lien>https://www.ldlc.com/fiche/PB00454454.html</d2p1:lien>
<d2p1:prix>89.95</d2p1:prix>
<d2p1:type>Ventirad</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>CarteMere</d4p1:Key>
<d4p1:Value>
<d2p1:id>Gigabyte B550M AORUS ELITE </d2p1:id>
<d2p1:lien>https://www.ldlc.com/fiche/PB00357556.html</d2p1:lien>
<d2p1:prix>129.95</d2p1:prix>
<d2p1:type>CarteMere</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>Alimentation</d4p1:Key>
<d4p1:Value>
<d2p1:id>be quiet! Pure Power 11 600W 80PLUS Gold</d2p1:id>
<d2p1:lien>https://www.ldlc.com/fiche/PB00261005.html</d2p1:lien>
<d2p1:prix>93.95</d2p1:prix>
<d2p1:type>Alimentation</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>CarteGraphique</d4p1:Key>
<d4p1:Value>
<d2p1:id>ASUS RTX 3060</d2p1:id>
<d2p1:lien>https://www.amazon.fr/ASUS-DUAL-NVIDIA-GeForce-GDDR6/dp/B096658ZWP</d2p1:lien>
<d2p1:prix>453.99</d2p1:prix>
<d2p1:type>CarteGraphique</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>RAM</d4p1:Key>
<d4p1:Value>
<d2p1:id>Corsair Vengeance RGB RS 16 Go (2 x 8 Go) DDR4 3200 MHz CL16</d2p1:id>
<d2p1:lien>https://www.cdiscount.com/informatique/memoire-ram/memoire-ram-corsair-vengeance-rgb-rs-ddr4/f-10716-cor0840006649007.html?idOffre</d2p1:lien>
<d2p1:prix>60.7</d2p1:prix>
<d2p1:type>RAM</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>HDD</d4p1:Key>
<d4p1:Value>
<d2p1:id>Seagate BarraCuda 2 To (ST2000DM005) </d2p1:id>
<d2p1:lien>https://www.ldlc.com/fiche/PB00254339.html</d2p1:lien>
<d2p1:prix>62.95</d2p1:prix>
<d2p1:type>HDD</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>SSD</d4p1:Key>
<d4p1:Value>
<d2p1:id>Samsung SSD 980 M.2 PCIe NVMe 1 To</d2p1:id>
<d2p1:lien>https://www.amazon.fr/s?k=samsung+ssd+980+m.2+pcie+nvme+1to&amp;ref=nb_sb_noss</d2p1:lien>
<d2p1:prix>57.37</d2p1:prix>
<d2p1:type>SSD</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
<d4p1:Key>Ventilateur</d4p1:Key>
<d4p1:Value>
<d2p1:id>MARSGAMING MF-Duo</d2p1:id>
<d2p1:lien>https://www.amazon.fr/MARSGAMING-Ventilateurs-Rainbow-Ultra-Silencieux-Connexion/dp/B0BGY9M3ZG/</d2p1:lien>
<d2p1:prix>10.9</d2p1:prix>
<d2p1:type>Ventilateur</d2p1:type>
</d4p1:Value>
</d4p1:KeyValueOfTypeComposantComposantnXRTjOwq>
</d2p1:dComp>
<d2p1:id>1</d2p1:id>
<d2p1:image>pc2.png</d2p1:image>
<d2p1:prix>1288.0999</d2p1:prix>
@ -94,25 +267,26 @@
<d2p1:type>Ventilateur</d2p1:type>
</d2p1:Composant>
</lc>
<ld xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<lu xmlns:d2p1="http://schemas.datacontract.org/2004/07/CanYouBuildIt.Model">
<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:Builds xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<d2p1:listBuild />
<d2p1:listFav xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<d2p1:password>1234</d2p1:password>
<d2p1:username>Clément</d2p1:username>
</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:Builds xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<d2p1:listBuild />
<d2p1:listFav xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<d2p1:password>vivien</d2p1:password>
<d2p1:username>Vivien</d2p1:username>
</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:Builds xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<d2p1:listBuild />
<d2p1:listFav xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<d2p1:password>0000</d2p1:password>
<d2p1:username>Kevin</d2p1:username>
</d2p1:Utilisateur>

@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.Serialization;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
@ -14,6 +15,7 @@ namespace CanYouBuildIt.DataContractPersistance
{
public string FilePath { get; set; }
public string FileName { get; set; } = "UserData.xml";
public string FileDico { get; set; } = "DicoData.xml";
//Charge les données sauvegardées dans un fichier de format xml
public DataToPersist chargeDonnee()
@ -33,9 +35,22 @@ namespace CanYouBuildIt.DataContractPersistance
{
data = serializer.ReadObject(stream) as DataToPersist;
}
//data = chargeDico(data);
return data;
}
/*public DataToPersist chargeDico(DataToPersist data)
{
var serializer = new DataContractSerializer(typeof(Dictionary<TypeComposant, Composant>));
//-- Read fichier--//
using (Stream stream = File.OpenRead(Path.Combine(FilePath, FileName)))
{
data.ld = serializer.ReadObject(stream) as Dictionary<TypeComposant, Composant>;
}
return data;
}*/
//Sauvegarde les données dans un fichier de format xml
public void sauvegardeDonnee(DataToPersist data)
{
@ -47,13 +62,13 @@ namespace CanYouBuildIt.DataContractPersistance
FilePath = Path.Combine(FilePath, "Data");
//-- Vérifie si le fichier et dossier existe déjà --//
var serializer = new DataContractSerializer (typeof(DataToPersist));
if (!Directory.Exists(FilePath))
{
Directory.CreateDirectory(FilePath);
}
var serializer = new DataContractSerializer (typeof(DataToPersist));
//-- Write fichier --//
var settings = new XmlWriterSettings() { Indent = true };
using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileName)))
@ -63,6 +78,24 @@ namespace CanYouBuildIt.DataContractPersistance
serializer.WriteObject(writer, data);
}
}
//sauvegardeDico(data.ld);
}
/*
//Sauvegarde les données des dictionaires de composants dans un fichier de format xml
public void sauvegardeDico(List<Dictionary<TypeComposant, Composant>> ld)
{
var serializer = new DataContractSerializer(typeof(Dictionary<TypeComposant, Composant>));
//-- Write fichier --//
var settings = new XmlWriterSettings() { Indent = true };
using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileDico)))
{
using (XmlWriter writer = XmlWriter.Create(tw, settings))
{
serializer.WriteObject(writer, ld);
}
}
}*/
}
}

@ -13,5 +13,6 @@ namespace CanYouBuildIt.DataContractPersistance
public List<Utilisateur> lu = new List<Utilisateur>();
public List<Composant> lc = new List<Composant>();
public List<Build> lb = new List<Build>();
public List<Dictionary<TypeComposant,Composant>> ld = new List<Dictionary<TypeComposant, Composant>>();
}
}

@ -30,7 +30,7 @@ namespace CanYouBuildIt.Model
id = nbId;
nbId = nbId +1;
this.image = image;
Dictionary<TypeComposant, Composant> dComp = new Dictionary<TypeComposant, Composant>();
dComp = new Dictionary<TypeComposant, Composant>();
//Ajoue de chaque élément + calcule du prix total
dComp.Add(v1.type,v1);
@ -66,5 +66,9 @@ namespace CanYouBuildIt.Model
}
}
}
}
}

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace CanYouBuildIt.Model
{
public class DictionaryWrapper<TypeComposant, Composant>
{
[DataMember]
public List<KeyValuePair<TypeComposant, Composant>> Items { get; set; }
public DictionaryWrapper(Dictionary<TypeComposant, Composant> dictionary)
{
Items = dictionary.ToList();
}
public Dictionary<TypeComposant, Composant> ToDico()
{
return Items.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
}
}
}

@ -38,8 +38,6 @@ namespace CanYouBuildIt.Model
listUtil.AddRange(donnee.lu);
listComp.AddRange(donnee.lc);
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)
@ -95,5 +93,19 @@ namespace CanYouBuildIt.Model
}
return -1;
}
//Recherche si un pc fais parti des builds mis en favoris par un utilisateur
public int rechercheFav(int usern,int fav)
{
if (listUtil[usern].listFav != null)
for (int i = 0; i < listUtil[usern].listFav.Count();++i)
{
if (listUtil[usern].listFav[i] == fav)
{
return (i);
}
}
return -1;
}
}
}

@ -35,12 +35,20 @@ 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("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"));
//-- Test pour un deuxième build --//
//-- Test pour un deuxième build --//9
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("NZXT H5 Flow Noir", TypeComposant.Boitier, (float)109.36, "https://www.ldlc.com/fiche/PB00532181.html"));
lc.Add(new Composant("MARSGAMING MF-Duo", TypeComposant.Ventilateur, (float)10.90, "https://www.amazon.fr/MARSGAMING-Ventilateurs-Rainbow-Ultra-Silencieux-Connexion/dp/B0BGY9M3ZG/"));
//-- Test pour un troisième build --//13
lc.Add(new Composant("Corsair Vengeance LPX 16GB (2x8GB) DDR4 3200MHz C16 - Noir", TypeComposant.RAM, (float)48.89, "https://www.amazon.fr/Corsair-Vengeance-16GB-2x8GB-3200MHz/dp/B07RS1G6XW/ref=asc_df_B07RS1G6XW/?tag=go"));
lc.Add(new Composant("Disque SSD Interne Kingston FURY Renegade 1000 Go Noir", TypeComposant.SSD, (float)99.99, "https://www.fnac.com/Disque-SSD-Interne-Kingston-FURY-Renegade-1000-Go-Noir/a17744537/w-4?Origin=SEA_GOOGLE_PLA_MICRO&esl-k=sem-google%7cnx%7cc%7cm%7ckpla%7cp%7ct%7cdc%7ca%7cg19917047259&gclid=CjwKCAjwvpCkBhB4EiwAujULMrICm_eRaleVBUXER177e-Bw14n1mBVECGMwnR1fDSr5hJF5w5V1GRoCnIMQAvD_BwE&gclsrc=aw.ds"));
//8
lc.Add(new Composant("Corsair CV Series CV550Watt, 80 Plus Bronze", TypeComposant.Alimentation, (float)64.99, "https://www.amazon.fr/Alimentation-Corsair-CV550Watt-Plus-Bronze/dp/B07YVWW7MW/ref=asc_df_B07YVWW7MW/?tag=googshopfr-21&linkCode=df0&hvadid=411330562965&hvpos=&hvnetw=g&hvrand=991396465070491192&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9055886&hvtargid=pla-896516658390&psc=1&tag=&ref=&adgrpid=94631885692&hvpone=&hvptwo=&hvadid=411330562965&hvpos=&hvnetw=g&hvrand=991396465070491192&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9055886&hvtargid=pla-896516658390"));
//5
lc.Add(new Composant("Intel® Core™ i5-13400F", TypeComposant., (float), "https://www.rueducommerce.fr/p-intel-core-i5-13400f-25ghz46ghz-intel-3436638-18383.html?gclid=CjwKCAjwvpCkBhB4EiwAujULMpR3j0-QYXXpmJ-8xhkSlYtW14MqWqznls6gKGuzZlqd3xovMzKOORoCdLsQAvD_BwE"));
lc.Add(new Composant("", TypeComposant., (float), ""));
lc.Add(new Composant("", TypeComposant., (float), ""));
DataToPersist data = new DataToPersist();
@ -48,9 +56,11 @@ namespace CanYouBuildIt.Model
data.lu.AddRange(lu);
data.lc.AddRange(lc);
data.lb.Add(new Build("pc1.png", lc[0], lc[1], lc[2], lc[3], lc[4], lc[5], lc[6], lc[7], lc[8]));
Build b1 = new Build("pc1.png", lc[0], lc[1], lc[2], lc[3], lc[4], lc[5], lc[6], lc[7], lc[8]);
data.lb.Add(b1);
data.lb.Add(new Build("pc2.png", lc[11], lc[1], lc[2], lc[3], lc[4], lc[5], lc[9], lc[8], lc[10], lc[12]));
return data;
}

@ -15,20 +15,29 @@ namespace CanYouBuildIt.Model
[DataMember]
public string password { get; private set; }
[DataMember]
public List<Build> listBuild;
public List<Build> listBuild = new List<Build>();
[DataMember]
public List<int> listFav;
public List<int> listFav = new List<int>();
[DataMember]
public List<int> Builds;
public List<int> Builds = new List<int>();
public Utilisateur(string name, string pass, List<Build> listbuild = null, List<int> listfav = null, List<int> builds = null)
{
username = name;
password = pass;
if (listbuild != null)
listBuild = listbuild;
else
listBuild = new List<Build>();
if (listfav != null)
listFav = listfav;
else
listFav = new List<int>();
if (listbuild != null)
Builds = builds;
else
Builds = new List<int>();
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 KiB

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

@ -76,14 +76,6 @@
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Button BackgroundColor="DimGrey"
Clicked="NavOrdi"
Grid.Row="0" Grid.Column="2"
HorizontalOptions="Center"
Text="Configurateur"
TextColor="Snow"
x:Name="Config"/>
<Button BackgroundColor="DimGrey"
Clicked="NavFav"
Grid.Row="0" Grid.Column="5"

@ -1,7 +1,5 @@
using CanYouBuildIt.Model;
using Microsoft.Maui.Controls;
using System.Diagnostics;
using System.Reflection;
namespace CanYouBuildIt.Views;
@ -67,7 +65,18 @@ public partial class Acceuil : ContentPage
//Empile la fenetre d'un pc
public async void NavOrdi(object sender, EventArgs e)
{
await Navigation.PushAsync(new Ordinateur(0));
// 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
@ -91,10 +100,12 @@ public partial class Acceuil : ContentPage
{
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);

@ -4,7 +4,7 @@
x:Class="CanYouBuildIt.Views.Ordinateur"
Title="Ordinateur"
BackgroundColor="#26B4BE">
<VerticalStackLayout>
<VerticalStackLayout x:Name="pcV">
<ImageButton Source="logoapp.png"
Clicked="BackHome"
@ -12,10 +12,10 @@
<Grid x:Name="pcG">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition Height="200"/>
<RowDefinition Height="200"/>
<RowDefinition Height="200"/>
<RowDefinition Height="200"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />

@ -6,18 +6,27 @@ 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 Dictionary<TypeComposant, Composant> dico = new Dictionary<TypeComposant, Composant>();
int user { get; set;}
int idPc { get; set;}
public Ordinateur(int IdPc)
{
InitializeComponent();
//dico = manager.listBuild[IdPc].dComp;
Debug.WriteLine("srebvg<srdebvwwdrvg");
Debug.WriteLine(manager.listBuild[IdPc].dComp[TypeComposant.Boitier].id);
dico = manager.listBuild[IdPc].dComp;
fillGrid(IdPc);
}
public Ordinateur(int IdPc,int idUser)
{
InitializeComponent();
dico = manager.listBuild[IdPc].dComp;
idPc = IdPc;
fillGrid(IdPc);
bouttonFav(idUser);
}
//dépile la fenêtre pour retourner à la précédente
public async void BackHome(object sender, EventArgs e)
{
@ -25,25 +34,69 @@ public partial class Ordinateur : ContentPage
await Navigation.PopAsync();
}
public void bouttonFav(int user)
{
//if (manager.rechercheFav(user, idPc) != -1)
if (manager.listUtil[user].listFav.Contains(idPc))
{
ImageButton favbtn = new ImageButton()
{
Source = "favon.png",
HeightRequest = 50,
HorizontalOptions = LayoutOptions.End,
VerticalOptions = LayoutOptions.Start
};
favbtn.Clicked += switchFav;
Grid.SetRow(favbtn, 1);
Grid.SetColumn(favbtn, 1);
pcG.Children.Add(favbtn);
}
else
{
ImageButton favbtn = new ImageButton()
{
Source = "favoff.png",
HeightRequest = 50,
HorizontalOptions = LayoutOptions.End,
VerticalOptions = LayoutOptions.Start
};
favbtn.Clicked += switchFav;
Grid.SetRow(favbtn, 1);
Grid.SetColumn(favbtn, 1);
pcG.Children.Add(favbtn);
}
}
public void switchFav(object sender, EventArgs e)
{
ImageButton imageButton = (ImageButton)sender;
if (imageButton.Source.ToString() == "favon.png")
{
imageButton.Source = "favoff.png";
int adressFav = manager.rechercheFav(user, idPc);
manager.listUtil[user].listFav.RemoveAt(adressFav);
manager.sauvegardeDonnee();
}
else
{
imageButton.Source = "favon.png";
manager.listUtil[user].listFav.Add(idPc);
manager.sauvegardeDonnee();
}
}
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
// -- Processeur -- //
Label cpu = new Label()
{
//Text = dico[TypeComposant.Processeur].id,
TextColor = Color.FromArgb("#000000")
Text = dico[TypeComposant.Processeur].id,
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
//Défini la case de la grille ou sera l'image
Grid.SetRow(cpu, 0);
@ -51,6 +104,173 @@ public partial class Ordinateur : ContentPage
//Met l'image dans la grille
pcG.Children.Add(cpu);
// -- Boitier -- //
Label boite = new Label()
{
Text = dico[TypeComposant.Boitier].id,
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Grid.SetRow(boite, 0);
Grid.SetColumn(boite, 1);
pcG.Children.Add(boite);
// -- RAM -- //
Label ram = new Label()
{
Text = dico[TypeComposant.RAM].id,
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Grid.SetRow(ram, 0);
Grid.SetColumn(ram, 2);
pcG.Children.Add(ram);
// -- Carte Graphique -- //
Label gpu = new Label()
{
Text = dico[TypeComposant.CarteGraphique].id,
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Grid.SetRow(gpu, 1);
Grid.SetColumn(gpu, 0);
pcG.Children.Add(gpu);
// -- Ventirad -- //
Label ventir = new Label()
{
Text = dico[TypeComposant.Ventirad].id,
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Grid.SetRow(ventir, 1);
Grid.SetColumn(ventir, 2);
pcG.Children.Add(ventir);
// -- Carte Mère -- //
Label mboard = new Label()
{
Text = dico[TypeComposant.CarteMere].id,
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Grid.SetRow(mboard, 2);
Grid.SetColumn(mboard, 0);
pcG.Children.Add(mboard);
// -- Ventilateur -- //
if (dico.ContainsKey(TypeComposant.Ventilateur))
{
Label ventilo = new Label()
{
Text = dico[TypeComposant.Ventilateur].id,
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Grid.SetRow(ventilo, 2);
Grid.SetColumn(ventilo, 2);
pcG.Children.Add(ventilo);
}
else
{
Label ventilo = new Label()
{
Text = "Pas de ventilateur suplémentaire",
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Grid.SetRow(ventilo, 2);
Grid.SetColumn(ventilo, 2);
pcG.Children.Add(ventilo);
}
// -- SSD -- //
if (dico.ContainsKey(TypeComposant.SSD))
{
Label ssd = new Label()
{
Text = dico[TypeComposant.SSD].id,
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Grid.SetRow(ssd, 3);
Grid.SetColumn(ssd, 0);
pcG.Children.Add(ssd);
}
else
{
Label ssd = new Label()
{
Text = "Pas de SSD",
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Grid.SetRow(ssd, 3);
Grid.SetColumn(ssd, 0);
pcG.Children.Add(ssd);
}
// -- Alimentation -- //
Label alim = new Label()
{
Text = dico[TypeComposant.Alimentation].id,
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Grid.SetRow(alim, 3);
Grid.SetColumn(alim, 1);
pcG.Children.Add(alim);
// -- HDD -- //
if (dico.ContainsKey(TypeComposant.HDD))
{
Label hdd = new Label()
{
Text = dico[TypeComposant.HDD].id,
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Grid.SetRow(hdd, 3);
Grid.SetColumn(hdd, 2);
pcG.Children.Add(hdd);
}
else
{
Label hdd = new Label()
{
Text = "Pas de HDD",
TextColor = Color.FromArgb("#FFFFFF"),
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Grid.SetRow(hdd, 3);
Grid.SetColumn(hdd, 2);
pcG.Children.Add(hdd);
}
Image pcI = new Image()
{
Source = manager.listBuild[Pc].image,
Margin = new Thickness(0,-50,0,0),
HeightRequest = 300,
};
Grid.SetRow(pcI, 2);
Grid.SetColumn(pcI, 1);
pcG.Children.Add(pcI);
}
}
Loading…
Cancel
Save