diff --git a/Business/Manager.cs b/Business/Manager.cs index 08f3dc7..06e40b4 100644 --- a/Business/Manager.cs +++ b/Business/Manager.cs @@ -11,8 +11,10 @@ namespace Business { public class Manager { - public ReadOnlyCollection Requins { get; private set; } - private List requins = new List(); + public ObservableCollection Requins { get; private set; } + public ObservableCollection RequinsEdit { get; private set; } + + public ObservableCollection RequinsAdd { get; private set; } public Requin SelectedRequin { get; set; } /// @@ -27,44 +29,63 @@ namespace Business public Manager(IPersistanceManager pers) { - Requins = new ReadOnlyCollection(requins); + Requins = new ObservableCollection(); + RequinsEdit = new ObservableCollection(); + RequinsAdd = new ObservableCollection(); Pers = pers; } public void LoadRequins() { - requins.Clear(); - requins.AddRange(Pers.LoadRequins()); + Requins.Clear(); + foreach (Requin req in Pers.LoadRequins()) + { + Requins.Add(req); + } + RequinsEdit.Clear(); + foreach (Requin req in Pers.LoadRequinsEdit()) + { + RequinsEdit.Add(req); + } + RequinsAdd.Clear(); + foreach (Requin req in Pers.LoadRequinsAdd()) + { + RequinsAdd.Add(req); + } SelectedRequin = null; } public void SaveRequins() { - Pers.SaveRequins(requins); + Pers.SaveRequins(Requins); + Pers.SaveRequinsEdit(RequinsEdit); + Pers.SaveRequinsAdd(RequinsAdd); } public bool AjouterRequin(Requin req) { - if (requins.Contains(req)){ + Requin test = Requins.SingleOrDefault(r => r.Equals(req)); + if (Requins.Contains(req) && test!=null){ return false; } - requins.Add(req); + Requins.Add(req); return true; } public bool SupprimerRequin(Requin req) { - if (!requins.Contains(req)) + Requin test = Requins.SingleOrDefault(r => r.Equals(req)); + if (!Requins.Contains(req) || test == null) { return false; } - requins.Remove(req); + Requins.Remove(req); return true; } public Requin GetRequin(Requin req) { - return requins.SingleOrDefault(r => r.Equals(req)); + return Requins.SingleOrDefault(r => r.Equals(req)); } public bool ModifieRequin(Requin oldR, Requin newR) @@ -73,12 +94,69 @@ namespace Business { return false; } - requins.Remove(oldR); - requins.Add(newR); + Requins.Remove(oldR); + Requins.Add(newR); + return true; + } + + public bool AjouterRequinEdit(Requin req) + { + Requin test = RequinsEdit.SingleOrDefault(r => r.Equals(req)); + if (RequinsEdit.Contains(req) && test != null) + { + return false; + + } + RequinsEdit.Add(req); + return true; + } + + public bool SupprimerRequinEdit(Requin req) + { + Requin test = RequinsEdit.SingleOrDefault(r => r.Equals(req)); + if (!RequinsEdit.Contains(req) || test == null) + { + return false; + } + RequinsEdit.Remove(req); return true; } - public List rechercherRequins(ReadOnlyCollection lRech, Nullable zone, string motif) + + public bool AjouterRequinAdd(Requin req) + { + Requin test = RequinsAdd.SingleOrDefault(r => r.Equals(req)); + if (RequinsAdd.Contains(req) && test != null) + { + return false; + + } + RequinsAdd.Add(req); + return true; + } + + public bool SupprimerRequinAdd(Requin req) + { + Requin test = RequinsAdd.SingleOrDefault(r => r.Equals(req)); + if (!RequinsAdd.Contains(req) || test == null) + { + return false; + } + RequinsAdd.Remove(req); + return true; + } + + public Requin GetRequinEdit(Requin req) + { + return RequinsEdit.SingleOrDefault(r => r.Equals(req)); + } + + public Requin GetRequinAdd(Requin req) + { + return RequinsAdd.SingleOrDefault(r => r.Equals(req)); + } + + public List rechercherRequins(ObservableCollection lRech, Nullable zone, string motif) { List nvReq = new List(); int test = 0; diff --git a/Business/ManagerAddEdit.cs b/Business/ManagerAddEdit.cs deleted file mode 100644 index 90b710b..0000000 --- a/Business/ManagerAddEdit.cs +++ /dev/null @@ -1,103 +0,0 @@ -using Modèle; -using Persistance; -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Business -{ - public class ManagerAddEdit - { - public ReadOnlyCollection RequinsEdit { get; private set; } - - public ReadOnlyCollection RequinsAdd { get; private set; } - - private List requinsAdd = new List(); - - private List requinsEdit = new List(); - - public Requin SelectedRequin { get; set; } - - - public IPersistanceManager Pers { get; set; } - - public ManagerAddEdit(IPersistanceManager pers) - { - RequinsEdit = new ReadOnlyCollection(requinsEdit); - RequinsAdd = new ReadOnlyCollection(requinsAdd); - Pers = pers; - } - public void LoadRequins() - { - requinsEdit.Clear(); - requinsEdit.AddRange(Pers.LoadRequinsEdit()); - requinsAdd.Clear(); - requinsAdd.AddRange(Pers.LoadRequinsAdd()); - SelectedRequin = null; - } - - public void SaveRequins() - { - Pers.SaveRequinsEdit(requinsEdit); - Pers.SaveRequinsAdd(requinsAdd); - } - - public bool AjouterRequinEdit(Requin req) - { - if (requinsEdit.Contains(req)) - { - return false; - - } - requinsEdit.Add(req); - return true; - } - - public bool SupprimerRequinEdit(Requin req) - { - if (!requinsEdit.Contains(req)) - { - return false; - } - requinsEdit.Remove(req); - return true; - } - - - public bool AjouterRequinAdd(Requin req) - { - if (requinsAdd.Contains(req)) - { - return false; - - } - requinsAdd.Add(req); - return true; - } - - public bool SupprimerRequinAdd(Requin req) - { - if (!requinsAdd.Contains(req)) - { - return false; - } - requinsAdd.Remove(req); - return true; - } - - public Requin GetRequinEdit(Requin req) - { - return requinsEdit.SingleOrDefault(r => r.Equals(req)); - } - - public Requin GetRequinAdd(Requin req) - { - return requinsAdd.SingleOrDefault(r => r.Equals(req)); - } - - - } -} diff --git a/Business/ManagerUsers.cs b/Business/ManagerUsers.cs index ce5ff07..08fa2c3 100644 --- a/Business/ManagerUsers.cs +++ b/Business/ManagerUsers.cs @@ -11,8 +11,7 @@ namespace Business { public class ManagerUsers { - public ReadOnlyCollection Utilisateurs { get; private set; } - private List utilisateurs = new List(); + public List Utilisateurs { get; private set; } public Personne SelectedUser { get; set; } /// @@ -27,45 +26,45 @@ namespace Business public ManagerUsers(IPersistanceManager pers) { - Utilisateurs = new ReadOnlyCollection(utilisateurs); + Utilisateurs = new List(); Pers = pers; } public void LoadUsers() { - utilisateurs.Clear(); - utilisateurs.AddRange(Pers.LoadUsers()); + Utilisateurs.Clear(); + Utilisateurs.AddRange(Pers.LoadUsers()); SelectedUser = null; } public void SaveUsers() { - Pers.SaveUsers(utilisateurs); + Pers.SaveUsers(Utilisateurs); } public bool AjouterUtilisateur(Personne user) { - if (utilisateurs.Contains(user)) + if (Utilisateurs.Contains(user)) { return false; } - utilisateurs.Add(user); + Utilisateurs.Add(user); return true; } public bool SupprimerUtilisateur(Personne user) { - if (!utilisateurs.Contains(user)) + if (!Utilisateurs.Contains(user)) { return false; } - utilisateurs.Remove(user); + Utilisateurs.Remove(user); return true; } public Personne GetUtilisateur(Personne user) { - return utilisateurs.SingleOrDefault(r => r.Equals(user)); + return Utilisateurs.SingleOrDefault(r => r.Equals(user)); } public bool ModifieUtilisateur(Personne oldU, Personne newU) @@ -74,8 +73,8 @@ namespace Business { return false; } - utilisateurs.Remove(oldU); - utilisateurs.Add(newU); + Utilisateurs.Remove(oldU); + Utilisateurs.Add(newU); return true; } diff --git a/StubLib/Stub.cs b/StubLib/Stub.cs index 2556ae7..7900648 100644 --- a/StubLib/Stub.cs +++ b/StubLib/Stub.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using Modèle; using Persistance; @@ -8,9 +9,9 @@ namespace StubLib public class Stub : IPersistanceManager { - private List requins = new List(); - private List requinsEdit = new List(); - private List requinsAdd = new List(); + private ObservableCollection requins = new ObservableCollection(); + private ObservableCollection requinsEdit = new ObservableCollection(); + private ObservableCollection requinsAdd = new ObservableCollection(); private List utilisateurs = new List(); @@ -24,6 +25,7 @@ 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")); + requinsEdit.Add(new Requin("Banane", "Le requin banal", "C'est un requin ultra banal", "Images/White_shark.png", "Videos/Vid-Requin-Blanc.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EW, zone, "En fait il est giga 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 @@ -32,32 +34,32 @@ namespace StubLib } - public List LoadRequins() + public ObservableCollection LoadRequins() { - return new List(requins); + return new ObservableCollection(requins); } - public void SaveRequins(List reqs) + public void SaveRequins(ObservableCollection reqs) { requins = reqs; } - public List LoadRequinsAdd() + public ObservableCollection LoadRequinsAdd() { - return new List(requinsAdd); + return new ObservableCollection(requinsAdd); } - public void SaveRequinsAdd(List reqs) + public void SaveRequinsAdd(ObservableCollection reqs) { requins = reqs; } - public List LoadRequinsEdit() + public ObservableCollection LoadRequinsEdit() { - return new List(requinsEdit); + return new ObservableCollection(requinsEdit); } - public void SaveRequinsEdit(List reqs) + public void SaveRequinsEdit(ObservableCollection reqs) { requinsEdit = reqs; } diff --git a/WpfApp1/AddAShark.xaml.cs b/WpfApp1/AddAShark.xaml.cs index e0526ff..d45074d 100644 --- a/WpfApp1/AddAShark.xaml.cs +++ b/WpfApp1/AddAShark.xaml.cs @@ -24,15 +24,14 @@ namespace WpfApp1 public AddAShark() { InitializeComponent(); - Manager.LoadRequins(); + Mgr.LoadRequins(); - DataContext = Manager; + DataContext = Mgr; } - public Manager Manager => (Application.Current as App).LeManager; + public Manager Mgr => (Application.Current as App).LeManager; - public ManagerAddEdit ManagerAddEdit => (Application.Current as App).LeManagerAddEdit; @@ -129,7 +128,7 @@ namespace WpfApp1 else { Requin requin = new Requin(nom, sciNam, descri, photo, video, map, cons, lesZones, fun); - ManagerAddEdit.AjouterRequinAdd(requin); + Mgr.AjouterRequinAdd(requin); Close(); } } diff --git a/WpfApp1/DescriptionAdd.xaml b/WpfApp1/DescriptionAdd.xaml new file mode 100644 index 0000000..0a90b35 --- /dev/null +++ b/WpfApp1/DescriptionAdd.xaml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + public partial class UCRequinValSubmit : UserControl { + + public Manager Mgr => (Application.Current as App).LeManager; + public UCRequinValSubmit() { InitializeComponent(); @@ -28,11 +32,6 @@ namespace WpfApp1 - public void UserControlReq_MouseDown(object sender, MouseButtonEventArgs e) - { - ((ValiderSubmit)System.Windows.Application.Current.MainWindow).ContentControlSwapDes(this.requin); - } - private Requin _requin; public Requin requin { @@ -48,14 +47,31 @@ namespace WpfApp1 public void uptadeUi(Requin requin) { + string url = "Images/" + requin.StatutCons.ToString() + ".png"; nameReq.Text = requin.Nom; sciName.Text = requin.NomSci; - //image.Source = new BitmapImage(new Uri(requin.Photo, UriKind.Relative)); + desc.Text = requin.Description; + vid.Source = new Uri(requin.Video, UriKind.Relative); + photo.Source = new BitmapImage(new Uri(requin.Photo, UriKind.Relative)); + funFact.Text = requin.FunFact; + consPic.Source = new BitmapImage(new Uri(url, UriKind.Relative)); + cartePic.Source = new BitmapImage(new Uri(requin.PhotoCarte, UriKind.Relative)); } private void exit_Click(object sender, RoutedEventArgs e) { } + + private void valider_Click(object sender, RoutedEventArgs e) + { + Mgr.AjouterRequin(requin); + Mgr.SupprimerRequinAdd(requin); + } + + private void refuser_Click(object sender, RoutedEventArgs e) + { + Mgr.SupprimerRequinAdd(requin); + } } } diff --git a/WpfApp1/UserControlRequin.xaml b/WpfApp1/UserControlRequin.xaml index eab5f1c..ad5fbc3 100644 --- a/WpfApp1/UserControlRequin.xaml +++ b/WpfApp1/UserControlRequin.xaml @@ -5,10 +5,9 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:WpfApp1" mc:Ignorable="d" - d:DesignHeight="450" d:DesignWidth="800" - MouseDown="UserControlReq_MouseDown"> - - + d:DesignHeight="450" d:DesignWidth="800"> + + @@ -19,8 +18,10 @@ - - + + + + diff --git a/WpfApp1/UserControlRequin.xaml.cs b/WpfApp1/UserControlRequin.xaml.cs index ed65034..f538d3f 100644 --- a/WpfApp1/UserControlRequin.xaml.cs +++ b/WpfApp1/UserControlRequin.xaml.cs @@ -24,6 +24,7 @@ namespace WpfApp1 public partial class UserControlRequin : UserControl { + public Manager Mgr => (Application.Current as App).LeManager; public UserControlRequin() @@ -42,11 +43,13 @@ namespace WpfApp1 } else if (type == UCrequinType.edit) { - + var descEdit = new DescriptionEdit { requin = requin, requinOld = Mgr.GetRequin(requin) }; + descEdit.ShowDialog(); } - else + else if (type == UCrequinType.add) { - + var descAdd = new DescriptionAdd { requin = requin }; + descAdd.ShowDialog(); } } @@ -66,7 +69,7 @@ namespace WpfApp1 { nameReq.Text = requin.Nom; sciName.Text = requin.NomSci; - //image.Source = new BitmapImage(new Uri(requin.Photo, UriKind.Relative)); + image.Source = new BitmapImage(new Uri(requin.Photo, UriKind.Relative)); } } } diff --git a/WpfApp1/UserControlValidation.xaml b/WpfApp1/UserControlValidation.xaml deleted file mode 100644 index 30e2e8d..0000000 --- a/WpfApp1/UserControlValidation.xaml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - diff --git a/WpfApp1/UserControlValidation.xaml.cs b/WpfApp1/UserControlValidation.xaml.cs deleted file mode 100644 index 65e2d13..0000000 --- a/WpfApp1/UserControlValidation.xaml.cs +++ /dev/null @@ -1,47 +0,0 @@ -using Business; -using Modèle; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; - -namespace WpfApp1 -{ - /// - /// Logique d'interaction pour UserControlValidation.xaml - /// - public partial class UserControlValidation : UserControl - { - - public Manager Mgr => (Application.Current as App).LeManager; - public UserControlValidation() - { - InitializeComponent(); - } - - - - public void chargerUC() - { - foreach (Requin req in Mgr.Requins) - { - laListe.Items.Add(new UserControlRequin { requin = req }); - } - } - - private void exit_Click(object sender, RoutedEventArgs e) - { - - } - } -} diff --git a/WpfApp1/ValiderSubmit.xaml b/WpfApp1/ValiderSubmit.xaml index 8caa006..a96059a 100644 --- a/WpfApp1/ValiderSubmit.xaml +++ b/WpfApp1/ValiderSubmit.xaml @@ -5,7 +5,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp1" mc:Ignorable="d" - Title="ValiderSubmit" Height="450" Width="800"> + Title="ValiderSubmit" Height="550" Width="1100"> diff --git a/WpfApp1/ValiderSubmit.xaml.cs b/WpfApp1/ValiderSubmit.xaml.cs index 7ed6f7f..da0a307 100644 --- a/WpfApp1/ValiderSubmit.xaml.cs +++ b/WpfApp1/ValiderSubmit.xaml.cs @@ -26,18 +26,27 @@ namespace WpfApp1 - public ManagerAddEdit MgrAddEdit => (Application.Current as App).LeManagerAddEdit; + public Manager Mgr => (Application.Current as App).LeManager; public ValiderSubmit() { InitializeComponent(); - MgrAddEdit.LoadRequins(); + Mgr.RequinsEdit.CollectionChanged += RequinsEdit_CollectionChanged; + Mgr.RequinsAdd.CollectionChanged += RequinsAdd_CollectionChanged; - DataContext = MgrAddEdit; + ChargerUCAdd(); + ChargerUCEdit(); + } - chargerUC(); + private void RequinsAdd_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) + { + ChargerUCAdd(); + } + private void RequinsEdit_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) + { + ChargerUCEdit(); } private void exit_Click(object sender, RoutedEventArgs e) @@ -45,22 +54,22 @@ namespace WpfApp1 Close(); } - public void chargerUC() + public void ChargerUCAdd() { - foreach (Requin req in MgrAddEdit.RequinsAdd) + foreach (Requin req in Mgr.RequinsAdd) { laListeAdd.Items.Add(new UserControlRequin { requin = req, type=UCrequinType.add }); } - foreach (Requin req in MgrAddEdit.RequinsEdit) + } + + public void ChargerUCEdit() + { + foreach (Requin req in Mgr.RequinsEdit) { laListeEdit.Items.Add(new UserControlRequin { requin = req, type = UCrequinType.edit }); } } - public void ContentControlSwapDes(Requin req) - { - //contentControl.Content = new userControlDescription { requin = req }; - } private void addShark_Click(object sender, RoutedEventArgs e) {