pull/9/head
Clement LESME 2 years ago
parent 18aba0fa22
commit 0a101baf64

@ -6,7 +6,8 @@ namespace CanYouBuildIt;
public partial class App : Application
{
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()
{
manager.chargeDonne();

@ -4,16 +4,19 @@
<lu xmlns:d2p1="http://schemas.datacontract.org/2004/07/CanYouBuildIt.Model">
<d2p1:Utilisateur>
<d2p1:listBuild i:nil="true" />
<d2p1:listFav xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" />
<d2p1:password>1234</d2p1:password>
<d2p1:username>Clément</d2p1:username>
</d2p1:Utilisateur>
<d2p1:Utilisateur>
<d2p1:listBuild i:nil="true" />
<d2p1:listFav xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" />
<d2p1:password>vivien</d2p1:password>
<d2p1:username>Vivien</d2p1:username>
</d2p1:Utilisateur>
<d2p1:Utilisateur>
<d2p1:listBuild i:nil="true" />
<d2p1:listFav xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" />
<d2p1:password>0000</d2p1:password>
<d2p1:username>Kevin</d2p1:username>
</d2p1:Utilisateur>

@ -19,40 +19,43 @@ namespace CanYouBuildIt.DataContractPersistance
public DataContractPers()
{ }
public (List<Utilisateur>,List<Composant>) chargeDonnee()
{ //replacer liste par datatopersiste
var serializer = new DataContractSerializer(typeof(DataToPersist));
public DataToPersist chargeDonnee()
{
//-- Chemin de sauvegarde --//
string appDirectory = AppContext.BaseDirectory;
int sousDossier = 53;
FilePath = appDirectory.Substring(0, appDirectory.Length - sousDossier);
Directory.SetCurrentDirectory(FilePath);
FilePath = Path.Combine(FilePath, "Data");
DataToPersist data = new DataToPersist();
var serializer = new DataContractSerializer(typeof(DataToPersist));
DataToPersist data = new DataToPersist();
//-- Read fichier--//
using (Stream stream = File.OpenRead(Path.Combine(FilePath, FileName)))
{
data = serializer.ReadObject(stream) as DataToPersist;
}
return (data.lu,data.lc); // return entre parentèses data.type1, data.type2
return data;
}
public void sauvegardeDonnee(List<Utilisateur> lu, List<Composant> lc)
public void sauvegardeDonnee(DataToPersist data)
{
//-- Chemin de sauvegarde --//
string appDirectory = AppContext.BaseDirectory;
int sousDossier = 53;
FilePath = appDirectory.Substring(0, appDirectory.Length - sousDossier);
Directory.SetCurrentDirectory(FilePath);
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);
}
DataToPersist data = new DataToPersist();
data.lu = lu;
data.lc = lc;
//-- Write fichier --//
var settings = new XmlWriterSettings() { Indent = true };
using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileName)))
{

@ -1,4 +1,5 @@
using System;
using CanYouBuildIt.DataContractPersistance;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@ -8,8 +9,8 @@ namespace CanYouBuildIt.Model
{
public interface IPersistanceManager
{
public (List<Utilisateur>,List<Composant>) chargeDonnee();
public DataToPersist chargeDonnee();
public void sauvegardeDonnee(List<Utilisateur> lu,List<Composant> lc);
public void sauvegardeDonnee(DataToPersist data);
}
}

@ -1,4 +1,5 @@
using System;
using CanYouBuildIt.DataContractPersistance;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
@ -22,19 +23,23 @@ namespace CanYouBuildIt.Model
public Manager(IPersistanceManager pers)
{
listUtil = new List<Utilisateur>();
listComp = new List<Composant>();
Persi = pers;
}
public void chargeDonne()
{
var donnee = Persi.chargeDonnee();
listUtil.AddRange(donnee.Item1);
//listComp.AddRange(donnee.Item2);
DataToPersist donnee = Persi.chargeDonnee();
listUtil.AddRange(donnee.lu);
listComp.AddRange(donnee.lc);
}
public void sauvegardeDonnee()
{
Persi.sauvegardeDonnee(listUtil,listComp);
DataToPersist data = new DataToPersist();
data.lu.AddRange(listUtil);
data.lc.AddRange(listComp);
Persi.sauvegardeDonnee(data);
}
public void ajouterUtilisateur(Utilisateur utilisateur)

@ -1,5 +1,7 @@
using System;
using CanYouBuildIt.DataContractPersistance;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -9,7 +11,7 @@ namespace CanYouBuildIt.Model
public class Stub : IPersistanceManager
{
public Stub() { }
public (List<Utilisateur>,List<Composant>) chargeDonnee()
public DataToPersist chargeDonnee()
{
List<Utilisateur> lu = new List<Utilisateur>();
List<Composant> lc = new List<Composant>();
@ -26,10 +28,15 @@ namespace CanYouBuildIt.Model
lc.Add(c1);
lc.Add(c2);
return (lu,lc);
DataToPersist data = new DataToPersist();
data.lu.AddRange(lu);
data.lc.AddRange(lc);
return data;
}
public void sauvegardeDonnee(List<Utilisateur> lu,List<Composant> lc)
public void sauvegardeDonnee(DataToPersist data)
{ }
}
}

@ -16,13 +16,16 @@ namespace CanYouBuildIt.Model
public string password { get; private set; }
[DataMember]
public List<Build> listBuild;
[DataMember]
public List<int> listFav;
public Utilisateur(string name, string pass, List<Build> listbuild = null)
public Utilisateur(string name, string pass, List<Build> listbuild = null, List<int> listfav = null)
{
username = name;
password = pass;
listBuild = listbuild;
listFav = listfav;
}
}
}

@ -8,8 +8,33 @@
<VerticalStackLayout>
<Image Source="logoapp.png"
MaximumHeightRequest="150"/>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Image Source="logoapp.png"
Grid.Row="0" Grid.Column="1"
MaximumHeightRequest="150"/>
<Button BackgroundColor="DimGrey"
Clicked="NavLogin"
Grid.Row="0" Grid.Column="2"
HorizontalOptions="End"
Margin="0,0,75,0"
MaximumHeightRequest="50"
Text="Login"
TextColor="Snow"
x:Name="Log"/>
</Grid>
<Grid Margin="0,50,0,0">
<Grid.RowDefinitions>
@ -84,20 +109,9 @@
Clicked="NavFav"
Grid.Row="0" Grid.Column="5"
HorizontalOptions="Center"
Text="Favoris"
TextColor="Snow"
x:Name="Fav"
Text="Favoris"/>
<ListView Grid.Row="1" Grid.Column="4"
ItemsSource="{Binding listUtil}"
x:Name="utilView">
<ListView.ItemTemplate>
<DataTemplate>
<Label Text="{Binding listUtil.username}"
TextColor="Black"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
x:Name="Fav"/>
<Label Text="{Binding listUtil[0].username}"/>
@ -119,13 +133,13 @@
</Grid>
<Label Text="WARNING ! Vous devez vous connecter pour acceder au favoris."
IsVisible="false"
x:Name="aConnecter"
BackgroundColor="Red"
<Label BackgroundColor="Red"
FontAttributes="Bold"
Margin="0,-125"
HorizontalOptions="Center"
WidthRequest="500"/>
IsVisible="false"
Margin="0,-125"
Text="WARNING ! Vous devez vous connecter pour acceder au favoris."
WidthRequest="500"
x:Name="aConnecter"/>
</VerticalStackLayout>
</ContentPage>

@ -34,7 +34,7 @@ public partial class Acceuil : ContentPage
private async void NavFav(object sender, EventArgs e)
{
if (connecte)
await Navigation.PushAsync(new Favoris());
await Navigation.PushAsync(new Favoris(user));
else
{
aConnecter.IsVisible = true;

@ -5,14 +5,15 @@ namespace CanYouBuildIt.Views;
public partial class Favoris : ContentPage
{
public Favoris()
int user;
public Favoris(int iduser)
{
InitializeComponent();
user = iduser;
}
private async void BackHome(object sender, EventArgs e)
{
await Navigation.PopAsync();
}
}
Loading…
Cancel
Save