diff --git a/src/Banquale/Banquale/DataContractPersistance/DataContractPersJSON.cs b/src/Banquale/Banquale/DataContractPersistance/DataContractPersJSON.cs index 85df3fb..5bc155f 100644 --- a/src/Banquale/Banquale/DataContractPersistance/DataContractPersJSON.cs +++ b/src/Banquale/Banquale/DataContractPersistance/DataContractPersJSON.cs @@ -18,7 +18,7 @@ namespace Banquale.DataContractPersistance public string FileName { get; set; } = "DataSave.json"; - public (List, Consultant) DataLoad() + public (HashSet, Consultant) DataLoad() { DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(DataToPersist)); @@ -33,7 +33,7 @@ namespace Banquale.DataContractPersistance } - public void DataSave(List cu, Consultant co) + public void DataSave(HashSet cu, Consultant co) { DataToPersist data = new DataToPersist(); diff --git a/src/Banquale/Banquale/DataContractPersistance/DataContractPersLINQ.cs b/src/Banquale/Banquale/DataContractPersistance/DataContractPersLINQ.cs new file mode 100644 index 0000000..dbf664d --- /dev/null +++ b/src/Banquale/Banquale/DataContractPersistance/DataContractPersLINQ.cs @@ -0,0 +1,46 @@ +using Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using System.Xml; + +namespace Banquale.DataContractPersistance +{ + public class DataContractPersLINQ : IPersistenceManager + { + + public string FilePath { get; set; } = FileSystem.Current.AppDataDirectory; + public string FileName { get; set; } = "DataSave.xml"; + + public (HashSet, Consultant) DataLoad() + { + throw new NotImplementedException(); + } + + public void DataSave(HashSet cu, Consultant co) + { + XDocument dataSave = new XDocument(); + + var save = cu.Select(v => new XElement("Customer", + new XElement("Personne", + new XElement("name", v.FirstName), + new XElement("id", Convert.ToString(v.Id)), + new XElement("mdp", v.Password), + new XAttribute("Account", v.AccountsList)))); + + dataSave.Add(new XElement("Customers", save)); + + XmlWriterSettings settings = new XmlWriterSettings(); + settings.Indent = true; + + using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileName))) + using (XmlWriter writer = XmlWriter.Create(tw, settings)) + { + dataSave.Save(writer); + } + } + } +} diff --git a/src/Banquale/Banquale/DataContractPersistance/DataContractPersXML.cs b/src/Banquale/Banquale/DataContractPersistance/DataContractPersXML.cs index 893ee04..637ddf4 100644 --- a/src/Banquale/Banquale/DataContractPersistance/DataContractPersXML.cs +++ b/src/Banquale/Banquale/DataContractPersistance/DataContractPersXML.cs @@ -15,7 +15,7 @@ namespace Banquale.DataContractPersistance public string FilePath { get; set; } = FileSystem.Current.AppDataDirectory; public string FileName { get; set; } = "DataSave.xml"; - public (List, Consultant) DataLoad() + public (HashSet, Consultant) DataLoad() { var serializer = new DataContractSerializer(typeof(DataToPersist)); @@ -49,7 +49,7 @@ namespace Banquale.DataContractPersistance return (data.customer, data.consultant); } - public void DataSave(List cu, Consultant co) + public void DataSave(HashSet cu, Consultant co) { var serializer = new DataContractSerializer(typeof(DataToPersist), new DataContractSerializerSettings() { PreserveObjectReferences = true }); // La deuxième partie sert à faire des références, cela sert à ne pas duppliquer l'écriture de certains attributs diff --git a/src/Banquale/Banquale/DataContractPersistance/DataToPersist.cs b/src/Banquale/Banquale/DataContractPersistance/DataToPersist.cs index 22c9843..1e08211 100644 --- a/src/Banquale/Banquale/DataContractPersistance/DataToPersist.cs +++ b/src/Banquale/Banquale/DataContractPersistance/DataToPersist.cs @@ -5,7 +5,7 @@ namespace Banquale.DataContractPersistance { public class DataToPersist { - public List customer { get; set; } = new List(); + public HashSet customer { get; set; } = new HashSet(); public Consultant consultant { get; set; } } } diff --git a/src/Banquale/Banquale/Stub/Stub.cs b/src/Banquale/Banquale/Stub/Stub.cs index 93e6998..f82d7a8 100644 --- a/src/Banquale/Banquale/Stub/Stub.cs +++ b/src/Banquale/Banquale/Stub/Stub.cs @@ -8,7 +8,7 @@ namespace Banquale.Stub public class Stub : IPersistenceManager { - public (List, Consultant) DataLoad() + public (HashSet, Consultant) DataLoad() { Consultant Consultant = new Consultant("Consultant", "Consultant", "Consultant"); // toujours creer en premier le consultant @@ -25,7 +25,6 @@ namespace Banquale.Stub Account Account2 = new Account(9510, "Despoints", "FR7647858569691441525263003"); Account Account3 = new Account(3519, "Perotte", "FR7663522541416969585847002"); - Transaction Transaction1 = new Transaction(true, 55, Account2, 1, new DateTime(2023, 6, 21, 15, 29, 20)); Transaction Transaction12 = new Transaction(true, 105, Account2, 2, new DateTime(2023, 8, 17, 18, 54, 35)); Transaction Transaction13 = new Transaction(true, 187, Account3, 3, new DateTime(2023, 5, 3, 8, 39, 49)); @@ -33,8 +32,9 @@ namespace Banquale.Stub Transaction Transaction3 = new Transaction(true, 1000, Account3, 5, new DateTime(2020, 9, 1, 20, 00, 00)); Debug.WriteLine(Customer1.Name, Customer1.Password); - List CustomersList = new List(); + Debug.WriteLine(Customer1.Name, Customer1.Password); + HashSet CustomersList = new HashSet(); List TransactionsList= new List(); List AccountsList = new List(); @@ -64,7 +64,7 @@ namespace Banquale.Stub return (CustomersList, Consultant); } - public void DataSave(List c, Consultant consultant) + public void DataSave(HashSet c, Consultant consultant) { throw new NotImplementedException(); } diff --git a/src/Banquale/Model/Account.cs b/src/Banquale/Model/Account.cs index 3ab60ef..8ac115d 100644 --- a/src/Banquale/Model/Account.cs +++ b/src/Banquale/Model/Account.cs @@ -109,13 +109,19 @@ namespace Model /// Obtient ou définit la liste des transactions effectuées sur le compte. /// [DataMember(Order = 5)] +<<<<<<< HEAD public ObservableCollection TransactionsList { +======= + public List TransactionsList + { +>>>>>>> b9413793a448a7f6b81d48c3a21bea9358db9927 get => transactionsList; set { transactionsList = value; OnPropertyChanged(nameof(TransactionsList)); +<<<<<<< HEAD } } @@ -128,6 +134,13 @@ namespace Model /// Somme de la transaction. /// Type de transaction (débit ou crédit). /// Numéro de la transaction. +======= + } + } + + private List transactionsList; + +>>>>>>> b9413793a448a7f6b81d48c3a21bea9358db9927 public void DoTransactions(Account involvedAccount, double sum, bool type, int nb) { if (type) // si le type est True => c'est un débit, on doit donc ajouter la transaction pour l'autre compte @@ -140,7 +153,11 @@ namespace Model else // Sinon, c'est un crédit, on a juste à l'ajouter à notre liste de transactions { TransactionsList.Add(new Transaction(type, sum, involvedAccount, nb, DateTime.Now)); +<<<<<<< HEAD Balance = Balance + sum; +======= + Balance = Balance+sum; +>>>>>>> b9413793a448a7f6b81d48c3a21bea9358db9927 } } @@ -155,6 +172,7 @@ namespace Model Balance = balance; Name = name; IBAN = iban; + TransactionsList = new List(); IBANHide = IBANToString(); TransactionsList = new ObservableCollection(); } diff --git a/src/Banquale/Model/IPersistenceManager.cs b/src/Banquale/Model/IPersistenceManager.cs index 20bbc71..eeafcfc 100644 --- a/src/Banquale/Model/IPersistenceManager.cs +++ b/src/Banquale/Model/IPersistenceManager.cs @@ -15,14 +15,14 @@ namespace Model /// /// Charge les données depuis une source de persistance. /// - /// Un tuple contenant la liste des clients et le consultant. - (List, Consultant) DataLoad(); + /// Un tuple contenant lle hashSet des clients et le consultant. + public (HashSet, Consultant) DataLoad(); /// /// Enregistre les données dans une source de persistance. /// /// La liste des clients à enregistrer. /// Le consultant à enregistrer. - void DataSave(List cu, Consultant co); + void DataSave(HashSet cu, Consultant co); } } diff --git a/src/Banquale/Model/Manager.cs b/src/Banquale/Model/Manager.cs index 6061395..9024a63 100644 --- a/src/Banquale/Model/Manager.cs +++ b/src/Banquale/Model/Manager.cs @@ -26,7 +26,7 @@ namespace Model /// Liste des clients gérés par le gestionnaire. /// [DataMember] - public List CustomersList { get; private set; } // devient un set + public HashSet CustomersList { get; private set; } public ObservableCollection CategoryList { get; private set; } = new ObservableCollection {"Automobile", "Santé", "Abonnement", "Logement", "Impôts et taxes", "Courses", "Loisirs et sorties", "Enfant(s)"}; @@ -101,18 +101,18 @@ namespace Model /// Constructeur du gestionnaire avec un gestionnaire de persistance spécifié. /// /// Gestionnaire de persistance. - public Manager(IPersistenceManager persistence) - { - CustomersList = new List(); - Persistence = persistence; - } + public Manager(IPersistenceManager persistence) + { + CustomersList = new HashSet(); + Persistence = persistence; + } /// /// Constructeur du gestionnaire sans gestionnaire de persistance. /// public Manager() { - CustomersList = new List(); + CustomersList = new HashSet(); } /// @@ -126,16 +126,6 @@ namespace Model return true; } - /// - /// Récupère le client à la position spécifiée dans la liste des clients. - /// - /// Position du client. - /// Le client à la position spécifiée. - public Customer GetCustomer(int place) - { - return CustomersList[place]; - } - /// /// Enregistre les données dans la source de persistance. /// @@ -148,10 +138,10 @@ namespace Model /// Charge les données depuis la source de persistance. /// public void DataLoad() - { - var data = Persistence.DataLoad(); + { + var data = Persistence.DataLoad(); - CustomersList.AddRange(data.Item1); + CustomersList =data.Item1; Consultant = data.Item2; } diff --git a/src/Banquale/Model/Transaction.cs b/src/Banquale/Model/Transaction.cs index 27d1ff6..957907e 100644 --- a/src/Banquale/Model/Transaction.cs +++ b/src/Banquale/Model/Transaction.cs @@ -115,6 +115,7 @@ namespace Model [DataMember] private DateTime date; +<<<<<<< HEAD:src/Banquale/Model/Transaction.cs /// /// Initializes a new instance of the class. /// @@ -124,6 +125,9 @@ namespace Model /// The unique identifier of the transaction. /// The date of the transaction. public Transaction(bool type, double sum, Account involvedAccounts, int id, DateTime date) +======= + public Transaction(bool type, double sum, Account involvedAccounts/*, string category*/, int id, DateTime date) +>>>>>>> b9413793a448a7f6b81d48c3a21bea9358db9927:src/Banquale/Model/Transactions.cs { Category = null; Type = type;