lolilol persistance

master
Mathilde JEAN 3 years ago
parent c4eb823732
commit f0e50f4374

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

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

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

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

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

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

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

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

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

@ -1,6 +1,7 @@
using Modèle;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
@ -20,19 +21,20 @@ namespace Persistance
// Chemin des fichiers
string FilePath { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "..//..//Persistance");
string FilePath { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "..//..//..//Persistance");
// Noms des fichiers
string FileNameReq { get; set; }
= "ficReq";
string FileNameReqAdd { get; set; }
= "ficReqAdd";
string FileNameReqEdit { get; set; }
= "ficReqEdit";
string FileNameUsers { get; set; }
= "ficUsers";
@ -44,32 +46,30 @@ namespace Persistance
// Listes des requins et utilisateurs
List<Requin> requins = new List<Requin>();
List<Requin> requinsAdd = new List<Requin>();
List<Requin> requinEdit = new List<Requin>();
List<Personne> users = new List<Personne>();
ObservableCollection<Requin> requins = new ObservableCollection<Requin>();
ObservableCollection<Requin> requinsAdd = new ObservableCollection<Requin>();
ObservableCollection<Requin> requinsEdit = new ObservableCollection<Requin>();
ObservableCollection<Personne> users = new ObservableCollection<Personne>();
// 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))
{
requins = SerializerReq.ReadObject(stream) as List<Requin>;
requins = SerializerReq.ReadObject(stream) as ObservableCollection<Requin>;
}
return requins;
}
public void SaveRequins(List<Requin> reqs)
public void SaveRequins(ObservableCollection<Requin> reqs)
{
if (!Directory.Exists(FilePath))
{
@ -84,44 +84,95 @@ namespace Persistance
// 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
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)
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 System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -9,18 +10,18 @@ namespace Persistance
{
public interface IPersistanceManager
{
List<Requin> LoadRequins();
void SaveRequins(List<Requin> reqs);
ObservableCollection<Requin> LoadRequins();
void SaveRequins(ObservableCollection<Requin> reqs);
List<Requin> LoadRequinsEdit();
void SaveRequinsEdit(List<Requin> reqs);
ObservableCollection<Requin> LoadRequinsEdit();
void SaveRequinsEdit(ObservableCollection<Requin> reqs);
List<Requin> LoadRequinsAdd();
void SaveRequinsAdd(List<Requin> reqs);
ObservableCollection<Requin> LoadRequinsAdd();
void SaveRequinsAdd(ObservableCollection<Requin> reqs);
List<Personne> LoadUsers();
void SaveUsers(List<Personne> pers);
ObservableCollection<Personne> LoadUsers();
void SaveUsers(ObservableCollection<Personne> pers);
}
}

@ -24,10 +24,12 @@ 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"));
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("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 Expert("salut", "hey", "bob"));
// Utilisateurs
}
public List<Requin> LoadRequins()

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

@ -15,14 +15,25 @@ namespace WpfApp1
/// </summary>
public partial class App : Application
{
public IPersistanceManager strat = new DataContractPersistance();
public Manager LeManager { get; private set; } = new Manager(new StubLib.Stub());
public ManagerUsers LeManagerUser { get; private set; } = new ManagerUsers(new StubLib.Stub());
public static IPersistanceManager strat { get; private set; }
= new DataContractPersistance();
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()
{
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();
}
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUser;
public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers;
private void exit_Click(object sender, RoutedEventArgs e)
{

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

@ -28,7 +28,7 @@ namespace WpfApp1
public partial class MainWindow : Window
{
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; }

@ -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 ManagerUsers Mgr => (Application.Current as App).LeManagerUser;
public ManagerUsers Mgr => (Application.Current as App).LeManagerUsers;
public SeConnecter()
{
InitializeComponent();

@ -32,7 +32,7 @@ namespace WpfApp1
}
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;
public Requin requin

@ -8,7 +8,7 @@
Title="ValiderSubmit" Height="450" Width="800">
<DockPanel>
<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">
<Image Source="Images/plus.png" HorizontalAlignment="Center" Height="40" VerticalAlignment="Center"/>
</Button>
@ -38,7 +38,13 @@
</ItemsControl.ItemsPanel>
</ItemsControl>
<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>
</DockPanel>

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

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

@ -26,7 +26,7 @@ namespace WpfApp1
{
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;
private Requin _requin;

Loading…
Cancel
Save