lolilol persistance

master
Mathilde JEAN 3 years ago
parent c4eb823732
commit f0e50f4374

@ -19,7 +19,7 @@ namespace Business
/// DéPENDANCE /// DéPENDANCE
/// </summary> /// </summary>
public IPersistanceManager Pers { get; private set; } public IPersistanceManager Pers { get; set; }
/// <summary> /// <summary>
/// constructeur avec INJECTION DE LA DéPENDANCE /// constructeur avec INJECTION DE LA DéPENDANCE

@ -22,7 +22,7 @@ namespace Business
public Requin SelectedRequin { get; set; } public Requin SelectedRequin { get; set; }
public IPersistanceManager Pers { get; private set; } public IPersistanceManager Pers { get; set; }
public ManagerAddEdit(IPersistanceManager pers) public ManagerAddEdit(IPersistanceManager pers)
{ {

@ -19,7 +19,7 @@ namespace Business
/// DéPENDANCE /// DéPENDANCE
/// </summary> /// </summary>
public IPersistanceManager Pers { get; private set; } public IPersistanceManager Pers { get; set; }
/// <summary> /// <summary>
/// constructeur avec INJECTION DE LA DéPENDANCE /// constructeur avec INJECTION DE LA DéPENDANCE

@ -1,13 +1,16 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Modèle namespace Modèle
{ {
[DataContract]
public enum Conservation public enum Conservation
{ {
[DataMember]
EX, EX,
EW, EW,
CR, CR,

@ -1,14 +1,18 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Modèle namespace Modèle
{ {
[DataContract]
public class Expert : Personne public class Expert : Personne
{ {
[DataMember]
public DateTime DateD { get; private set; } public DateTime DateD { get; private set; }
[DataMember]
public string Surnom { get; private set; } public string Surnom { get; private set; }
public Expert(string email, string mdp, string surnom) : base(email, mdp) public Expert(string email, string mdp, string surnom) : base(email, mdp)

@ -1,14 +1,18 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Modèle namespace Modèle
{ {
[DataContract]
public abstract class Personne public abstract class Personne
{ {
[DataMember]
public string Email { get; protected set; } public string Email { get; protected set; }
[DataMember]
public string MotDePasse { get; protected set; } public string MotDePasse { get; protected set; }
public Personne(string email, string mdp) public Personne(string email, string mdp)

@ -1,21 +1,32 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Modèle namespace Modèle
{ {
[DataContract]
public class Requin : IEquatable<Requin> public class Requin : IEquatable<Requin>
{ {
[DataMember]
public string Nom { get; private set; } public string Nom { get; private set; }
[DataMember]
public string NomSci { get; private set; } public string NomSci { get; private set; }
[DataMember]
public string Description { get; private set; } public string Description { get; private set; }
[DataMember]
public string Photo { get; private set; } public string Photo { get; private set; }
[DataMember]
public string Video { get; private set; } public string Video { get; private set; }
[DataMember]
public string PhotoCarte { get; private set; } public string PhotoCarte { get; private set; }
[DataMember]
public Conservation StatutCons { get; private set; } public Conservation StatutCons { get; private set; }
[DataMember]
public string FunFact { get; private set; } public string FunFact { get; private set; }
[DataMember]
public List<Zone> Repartition { get; private set; } public List<Zone> Repartition { get; private set; }

@ -1,13 +1,16 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Modèle namespace Modèle
{ {
[DataContract]
public class Utilisateur : Personne public class Utilisateur : Personne
{ {
[DataMember]
public int NbSubmit { get; private set; } public int NbSubmit { get; private set; }
public Utilisateur(string mail, string mdp): base(mail, mdp) public Utilisateur(string mail, string mdp): base(mail, mdp)
{ {

@ -1,13 +1,16 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Modèle namespace Modèle
{ {
[DataContract]
public enum Zone public enum Zone
{ {
[DataMember]
ATLANTIQUE, ATLANTIQUE,
ARCTIQUE, ARCTIQUE,
PACIFIQUE, PACIFIQUE,

@ -1,6 +1,7 @@
using Modèle; using Modèle;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Runtime.Serialization; using System.Runtime.Serialization;
@ -20,19 +21,20 @@ namespace Persistance
// Chemin des fichiers // Chemin des fichiers
string FilePath { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "..//..//Persistance"); string FilePath { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "..//..//..//Persistance");
// Noms des fichiers // Noms des fichiers
string FileNameReq { get; set; } string FileNameReq { get; set; }
= "ficReq";
string FileNameReqAdd { get; set; } string FileNameReqAdd { get; set; }
= "ficReqAdd";
string FileNameReqEdit { get; set; } string FileNameReqEdit { get; set; }
= "ficReqEdit";
string FileNameUsers { get; set; } string FileNameUsers { get; set; }
= "ficUsers";
@ -44,32 +46,30 @@ namespace Persistance
// Listes des requins et utilisateurs // Listes des requins et utilisateurs
List<Requin> requins = new List<Requin>(); ObservableCollection<Requin> requins = new ObservableCollection<Requin>();
List<Requin> requinsAdd = new List<Requin>(); ObservableCollection<Requin> requinsAdd = new ObservableCollection<Requin>();
List<Requin> requinEdit = new List<Requin>(); ObservableCollection<Requin> requinsEdit = new ObservableCollection<Requin>();
List<Personne> users = new List<Personne>(); ObservableCollection<Personne> users = new ObservableCollection<Personne>();
// Méthodes pour les requins de l'application // Méthodes pour les requins de l'application
public List<Requin> LoadRequins() public ObservableCollection<Requin> LoadRequins()
{ {
if (File.Exists(FileReq)) if (!File.Exists(FileReq))
{ {
throw new FileNotFoundException("The persisance file Persisitance does not exist"); throw new FileNotFoundException("The persisance ficReq does not exist");
} }
using (Stream stream = File.OpenRead(FileReq)) using (Stream stream = File.OpenRead(FileReq))
{ {
requins = SerializerReq.ReadObject(stream) as List<Requin>; requins = SerializerReq.ReadObject(stream) as ObservableCollection<Requin>;
} }
return requins; return requins;
} }
public void SaveRequins(List<Requin> reqs) public void SaveRequins(ObservableCollection<Requin> reqs)
{ {
if (!Directory.Exists(FilePath)) if (!Directory.Exists(FilePath))
{ {
@ -84,44 +84,95 @@ namespace Persistance
// Méthodes pour les requins ajoutés par les Utilisateurs // Méthodes pour les requins ajoutés par les Utilisateurs
public List<Requin> LoadRequinsAdd() public ObservableCollection<Requin> LoadRequinsAdd()
{ {
throw new NotImplementedException(); if (!File.Exists(FileReqAdd))
{
throw new FileNotFoundException("The persisance file ficReqAdd does not exist");
}
using (Stream stream = File.OpenRead(FileReqAdd))
{
requinsAdd = SerializerReq.ReadObject(stream) as ObservableCollection<Requin>;
}
return requinsAdd;
} }
public void SaveRequinsAdd(List<Requin> reqs) public void SaveRequinsAdd(ObservableCollection<Requin> reqs)
{ {
throw new NotImplementedException(); if (!Directory.Exists(FilePath))
} {
Directory.CreateDirectory(FilePath);
}
using (Stream stream = File.Create(FileReqAdd))
{
SerializerReq.WriteObject(stream, requinsAdd);
}
}
// Méthodes pour les requins édités par les utilisateurs // Méthodes pour les requins édités par les utilisateurs
public List<Requin> LoadRequinsEdit() public ObservableCollection<Requin> LoadRequinsEdit()
{ {
throw new NotImplementedException(); if (!File.Exists(FileReqEdit))
{
throw new FileNotFoundException("The persisance file ficReqEdit does not exist");
}
using (Stream stream = File.OpenRead(FileReqEdit))
{
requinsEdit = SerializerReq.ReadObject(stream) as ObservableCollection<Requin>;
}
return requinsEdit;
} }
public void SaveRequinsEdit(List<Requin> reqs) public void SaveRequinsEdit(ObservableCollection<Requin> reqs)
{ {
throw new NotImplementedException(); if (!Directory.Exists(FilePath))
} {
Directory.CreateDirectory(FilePath);
}
using (Stream stream = File.Create(FileReqEdit))
{
SerializerReq.WriteObject(stream, requinsEdit);
}
}
// Méthodes pour les utilisateurs (Utilisateur et Manager) // Méthodes pour les utilisateurs (Utilisateur et Manager)
public List<Personne> LoadUsers() public ObservableCollection<Personne> LoadUsers()
{ {
throw new NotImplementedException(); if (!File.Exists(FileUsers))
{
throw new FileNotFoundException("The persisance file ficUsers does not exist");
}
using (Stream stream = File.OpenRead(FileUsers))
{
users = SerializerUsers.ReadObject(stream) as ObservableCollection<Personne>;
}
return users;
} }
public void SaveUsers(List<Personne> pers) public void SaveUsers(ObservableCollection<Personne> pers)
{ {
throw new NotImplementedException(); if (!Directory.Exists(FilePath))
{
Directory.CreateDirectory(FilePath);
}
using (Stream stream = File.Create(FileUsers))
{
SerializerUsers.WriteObject(stream, users);
}
} }
} }

@ -1,6 +1,7 @@
using Modèle; using Modèle;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -9,18 +10,18 @@ namespace Persistance
{ {
public interface IPersistanceManager public interface IPersistanceManager
{ {
List<Requin> LoadRequins(); ObservableCollection<Requin> LoadRequins();
void SaveRequins(List<Requin> reqs); void SaveRequins(ObservableCollection<Requin> reqs);
List<Requin> LoadRequinsEdit(); ObservableCollection<Requin> LoadRequinsEdit();
void SaveRequinsEdit(List<Requin> reqs); void SaveRequinsEdit(ObservableCollection<Requin> reqs);
List<Requin> LoadRequinsAdd(); ObservableCollection<Requin> LoadRequinsAdd();
void SaveRequinsAdd(List<Requin> reqs); void SaveRequinsAdd(ObservableCollection<Requin> reqs);
List<Personne> LoadUsers(); ObservableCollection<Personne> LoadUsers();
void SaveUsers(List<Personne> pers); void SaveUsers(ObservableCollection<Personne> pers);
} }
} }

@ -24,9 +24,11 @@ namespace StubLib
requins.Add(new Requin("Req1", "Le requin pas banal", "C'est un requin pas ultra banal", "Images/White_shark.png", "Videos/Vid-dormeur-mexicain.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EX, zone2, "Il est vraiment pas banal")); requins.Add(new Requin("Req1", "Le requin pas banal", "C'est un requin pas ultra banal", "Images/White_shark.png", "Videos/Vid-dormeur-mexicain.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EX, zone2, "Il est vraiment pas banal"));
requinsAdd.Add(new Requin("leRequinAjouté", "Le requin pas banal", "C'est un requin pas ultra banal", "Images/White_shark.png", "Videos/Vid-dormeur-mexicain.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EX, zone2, "Il est vraiment pas banal")); requinsAdd.Add(new Requin("leRequinAjouté", "Le requin pas banal", "C'est un requin pas ultra banal", "Images/White_shark.png", "Videos/Vid-dormeur-mexicain.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EX, zone2, "Il est vraiment pas banal"));
requinsAdd.Add(new Requin("leDeuxièmeRequinAjouté", "Le requin vraiemnt pas banal", "C'est un requin vraiment pas ultra banal", "Images/White_shark.png", "Videos/Vid-dormeur-mexicain.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EX, zone2, "Il est vraiment vraiment pas banal")); requinsAdd.Add(new Requin("leDeuxièmeRequinAjouté", "Le requin vraiemnt pas banal", "C'est un requin vraiment pas ultra banal", "Images/White_shark.png", "Videos/Vid-dormeur-mexicain.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EX, zone2, "Il est vraiment vraiment pas banal"));
requinsAdd.Add(new Requin("leTroisièmeRequinAjouté", "Le requin pas banal", "C'est un requin pas ultra banal", "Images/White_shark.png", "Videos/Vid-dormeur-mexicain.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EX, zone2, "Il est vraiment pas banal"));
requinsAdd.Add(new Requin("leQuatrièmeRequinAjouté", "Le requin vraiemnt pas banal", "C'est un requin vraiment pas ultra banal", "Images/White_shark.png", "Videos/Vid-dormeur-mexicain.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EX, zone2, "Il est vraiment vraiment pas banal"));
// Utilisateurs
utilisateurs.Add(new Utilisateur("a", "salut")); utilisateurs.Add(new Utilisateur("a", "salut"));
utilisateurs.Add(new Expert("salut", "hey", "bob")); utilisateurs.Add(new Expert("salut", "hey", "bob"));
// Utilisateurs
} }

@ -2,7 +2,8 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp1" xmlns:local="clr-namespace:WpfApp1"
StartupUri="MainWindow.xaml"> StartupUri="MainWindow.xaml"
Activated="Application_Activated">
<Application.Resources> <Application.Resources>
<ResourceDictionary> <ResourceDictionary>
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>

@ -15,14 +15,25 @@ namespace WpfApp1
/// </summary> /// </summary>
public partial class App : Application public partial class App : Application
{ {
public IPersistanceManager strat = new DataContractPersistance(); public static IPersistanceManager strat { get; private set; }
public Manager LeManager { get; private set; } = new Manager(new StubLib.Stub()); = new DataContractPersistance();
public ManagerUsers LeManagerUser { get; private set; } = new ManagerUsers(new StubLib.Stub()); public Manager LeManager { get; private set; } = new Manager(strat);
public ManagerUsers LeManagerUsers { get; private set; } = new ManagerUsers(strat);
public ManagerAddEdit LeManagerAddEdit { get; private set; } = new ManagerAddEdit(new StubLib.Stub());
public void Temp() public void Temp()
{ {
var mw = MainWindow as MainWindow; var mw = MainWindow as MainWindow;
} }
private void Application_Activated(object sender, EventArgs e)
{
LeManager.LoadRequins();
LeManager.Pers = new DataContractPersistance();
LeManager.SaveRequins();
LeManagerUsers.LoadUsers();
LeManagerUsers.Pers = new DataContractPersistance();
LeManagerUsers.SaveUsers();
}
} }
} }

@ -26,7 +26,7 @@ namespace WpfApp1
InitializeComponent(); InitializeComponent();
} }
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUser; public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers;
private void exit_Click(object sender, RoutedEventArgs e) private void exit_Click(object sender, RoutedEventArgs e)
{ {

@ -27,7 +27,7 @@ namespace WpfApp1
InitializeComponent(); InitializeComponent();
} }
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUser; public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers;
private Personne _pers; private Personne _pers;
public Personne pers public Personne pers

@ -28,7 +28,7 @@ namespace WpfApp1
public partial class MainWindow : Window public partial class MainWindow : Window
{ {
public Manager Mgr => (Application.Current as App).LeManager; public Manager Mgr => (Application.Current as App).LeManager;
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUser; public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers;
Nullable<Zone> zonePage{ get; set; } Nullable<Zone> zonePage{ get; set; }

@ -0,0 +1 @@
<ArrayOfRequin xmlns="http://schemas.datacontract.org/2004/07/Mod%C3%A8le" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>

@ -0,0 +1 @@
<ArrayOfRequin xmlns="http://schemas.datacontract.org/2004/07/Mod%C3%A8le" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>

@ -0,0 +1 @@
<ArrayOfRequin xmlns="http://schemas.datacontract.org/2004/07/Mod%C3%A8le" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>

@ -0,0 +1 @@
<ArrayOfPersonne xmlns="http://schemas.datacontract.org/2004/07/Mod%C3%A8le" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>

@ -22,7 +22,7 @@ namespace WpfApp1
public partial class SeConnecter : Window public partial class SeConnecter : Window
{ {
public ManagerUsers Mgr => (Application.Current as App).LeManagerUser; public ManagerUsers Mgr => (Application.Current as App).LeManagerUsers;
public SeConnecter() public SeConnecter()
{ {
InitializeComponent(); InitializeComponent();

@ -32,7 +32,7 @@ namespace WpfApp1
} }
public Manager Manager => (Application.Current as App).LeManager; public Manager Manager => (Application.Current as App).LeManager;
public ManagerUsers ManagerUser => (Application.Current as App).LeManagerUser; public ManagerUsers ManagerUser => (Application.Current as App).LeManagerUsers;
private Requin _requin; private Requin _requin;
public Requin requin public Requin requin

@ -8,7 +8,7 @@
Title="ValiderSubmit" Height="450" Width="800"> Title="ValiderSubmit" Height="450" Width="800">
<DockPanel> <DockPanel>
<DockPanel x:Name="Button" DockPanel.Dock="Top"> <DockPanel x:Name="Button" DockPanel.Dock="Top">
<TextBlock Text="VALIDATION DES SUBMITS" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="20" FontSize="30" FontWeight="Bold" FontFamily="Candara Light" Foreground="{StaticResource Couleur2}"/> <TextBlock Text="VALIDATION DES SUBMITS" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="20" FontSize="30" FontWeight="Bold" Foreground="{StaticResource Couleur2}"/>
<Button x:Name="add" Style="{StaticResource Button1}" Background="{StaticResource Couleur3}" Margin="280,0,0,0" VerticalAlignment="Center" Width="50" Height="50" FontSize="25" Click="addShark_Click"> <Button x:Name="add" Style="{StaticResource Button1}" Background="{StaticResource Couleur3}" Margin="280,0,0,0" VerticalAlignment="Center" Width="50" Height="50" FontSize="25" Click="addShark_Click">
<Image Source="Images/plus.png" HorizontalAlignment="Center" Height="40" VerticalAlignment="Center"/> <Image Source="Images/plus.png" HorizontalAlignment="Center" Height="40" VerticalAlignment="Center"/>
</Button> </Button>
@ -38,7 +38,13 @@
</ItemsControl.ItemsPanel> </ItemsControl.ItemsPanel>
</ItemsControl> </ItemsControl>
<TextBlock Text="Modifications" Height="20" Grid.Column="0" Grid.Row="2" Background="{StaticResource Couleur1}" Foreground="{StaticResource Couleur3}" TextAlignment="Center"/> <TextBlock Text="Modifications" Height="20" Grid.Column="0" Grid.Row="2" Background="{StaticResource Couleur1}" Foreground="{StaticResource Couleur3}" TextAlignment="Center"/>
<ItemsControl DockPanel.Dock="Right" Grid.Column="0" Grid.Row="3" x:Name="laListeEdit"/> <ItemsControl DockPanel.Dock="Right" Grid.Column="0" Grid.Row="3" x:Name="laListeEdit">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Grid> </Grid>
</DockPanel> </DockPanel>

@ -131,8 +131,4 @@
<Resource Include="Images\Logo_entier.png" /> <Resource Include="Images\Logo_entier.png" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="Persistance\" />
</ItemGroup>
</Project> </Project>

@ -22,7 +22,7 @@ namespace WpfApp1
/// </summary> /// </summary>
public partial class userControlAcceuil : UserControl public partial class userControlAcceuil : UserControl
{ {
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUser; public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers;
public userControlAcceuil() public userControlAcceuil()
{ {

@ -26,7 +26,7 @@ namespace WpfApp1
{ {
InitializeComponent(); InitializeComponent();
} }
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUser; public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers;
public Manager Mgr => (Application.Current as App).LeManager; public Manager Mgr => (Application.Current as App).LeManager;
private Requin _requin; private Requin _requin;

Loading…
Cancel
Save