From a18196020554f30b83f35d82969d1d5eee027442 Mon Sep 17 00:00:00 2001 From: "titouan.louvet" Date: Tue, 6 Jun 2023 11:26:26 +0200 Subject: [PATCH 01/27] Changed list to hashSet --- .../DataContractPersJSON.cs | 4 ++-- .../DataContractPersistance/DataContractPersXML.cs | 4 ++-- .../DataContractPersistance/DataToPersist.cs | 2 +- src/Banquale/Banquale/Stub/Stub.cs | 6 +++--- src/Banquale/Model/Account.cs | 13 ++++++++++++- src/Banquale/Model/IPersistenceManager.cs | 4 ++-- src/Banquale/Model/Manager.cs | 14 +++++++------- 7 files changed, 29 insertions(+), 18 deletions(-) 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/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 3749c51..5242d6d 100644 --- a/src/Banquale/Banquale/Stub/Stub.cs +++ b/src/Banquale/Banquale/Stub/Stub.cs @@ -7,7 +7,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 @@ -32,7 +32,7 @@ namespace Banquale.Stub Transactions Transactions3 = new Transactions(true, 1000, Account3, 5, new DateTime(2020, 9, 1, 20, 00, 00)); Debug.WriteLine(Customer1.Name, Customer1.Password); - List CustomersList = new List(); + HashSet CustomersList = new HashSet(); List TransactionsList= new List(); List AccountsList = new List(); @@ -57,7 +57,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 b42dff7..0e0c6bb 100644 --- a/src/Banquale/Model/Account.cs +++ b/src/Banquale/Model/Account.cs @@ -82,7 +82,17 @@ namespace Model private string ibanHide; [DataMember(Order = 5)] - public List TransactionsList { get; set; } = new List(); + public List TransactionsList + { + get => transactionsList; + set + { + transactionsList = value; + OnPropertyChanged(nameof(TransactionsList)); + } + } + + private List transactionsList; public void DoTransactions(Account involvedAccount, double sum, bool type, int nb) { @@ -106,6 +116,7 @@ namespace Model Balance = balance; Name = name; IBAN = iban; + TransactionsList = new List(); IBANHide = IBANToString(); } diff --git a/src/Banquale/Model/IPersistenceManager.cs b/src/Banquale/Model/IPersistenceManager.cs index afff14b..ef0b752 100644 --- a/src/Banquale/Model/IPersistenceManager.cs +++ b/src/Banquale/Model/IPersistenceManager.cs @@ -8,8 +8,8 @@ namespace Model { public interface IPersistenceManager { - public (List, Consultant) DataLoad(); + public (HashSet, Consultant) DataLoad(); - 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 dfd80ba..4ccb2e0 100644 --- a/src/Banquale/Model/Manager.cs +++ b/src/Banquale/Model/Manager.cs @@ -14,7 +14,7 @@ namespace Model => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); [DataMember] - public List CustomersList { get; private set; } // devient un set + public HashSet CustomersList { get; private set; } [DataMember] public Consultant Consultant { get; private set; } // 1 SEUL consultant @@ -69,13 +69,13 @@ namespace Model public Manager(IPersistenceManager persistence) { - CustomersList = new List(); + CustomersList = new HashSet(); Persistence = persistence; } public Manager() { - CustomersList = new List(); + CustomersList = new HashSet(); } public bool AddCustomer(Customer MyCustomer) @@ -84,9 +84,9 @@ namespace Model return true; } - public Customer GetCustomer(int place) { - return CustomersList[place]; - } + //public Customer GetCustomer(int place) { + // return CustomersList[place]; + //} public void DataSave() { @@ -97,7 +97,7 @@ namespace Model { var data = Persistence.DataLoad(); - CustomersList.AddRange(data.Item1); + CustomersList =data.Item1; /*foreach (var j in data.Item1) { -- 2.36.3 From fdd96c6ffb466d46c564178b29fe48d719cd17a2 Mon Sep 17 00:00:00 2001 From: "titouan.louvet" Date: Tue, 6 Jun 2023 11:35:50 +0200 Subject: [PATCH 02/27] Changed transactions to transactions --- .../Banquale/Views/BalancePage.xaml.cs | 2 +- src/Banquale/Model/Transactions.cs | 110 ------------------ 2 files changed, 1 insertion(+), 111 deletions(-) delete mode 100644 src/Banquale/Model/Transactions.cs diff --git a/src/Banquale/Banquale/Views/BalancePage.xaml.cs b/src/Banquale/Banquale/Views/BalancePage.xaml.cs index 2cc3e1a..d091ebd 100644 --- a/src/Banquale/Banquale/Views/BalancePage.xaml.cs +++ b/src/Banquale/Banquale/Views/BalancePage.xaml.cs @@ -37,7 +37,7 @@ public partial class BalancePage : ContentPage return; } - Transactions transactions = Mgr.SelectedAccount.TransactionsList.FirstOrDefault(u => u.Id == TransactionId); + Transaction transactions = Mgr.SelectedAccount.TransactionsList.FirstOrDefault(u => u.Id == TransactionId); if (transactions == null) { await DisplayAlert("Erreur", "La transaction n'éxiste pas !", "OK"); diff --git a/src/Banquale/Model/Transactions.cs b/src/Banquale/Model/Transactions.cs deleted file mode 100644 index 96645d1..0000000 --- a/src/Banquale/Model/Transactions.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System.ComponentModel; -using System.Runtime.Serialization; - -namespace Model -{ - [DataContract(IsReference = true)] - public class Transactions : INotifyPropertyChanged - { - - void OnPropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - [DataMember(Order = 1)] - public int Id { get; private set; } - - [DataMember(Order = 2)] - public bool Type - { - get => type; - set - { - if(type == value) - return; - type = value; - OnPropertyChanged(nameof(Type)); - } - } - [DataMember] - - private bool type; - - [DataMember(Order = 3)] - public double Sum - { - get => sum; - set - { - if (sum == value) - return; - sum = value; - OnPropertyChanged(nameof(Sum)); - } - } - [DataMember] - private double sum; - - [DataMember(Order = 4)] - public Account InvolvedAccounts - { - get => involvedAccounts; - set - { - if (involvedAccounts == value) - return; - involvedAccounts = value; - OnPropertyChanged(nameof(InvolvedAccounts)); - } - } - [DataMember] - private Account involvedAccounts; - - [DataMember(Order = 5)] - public string Category - { - get => category; - set - { - if (category == value) - return; - category = value; - OnPropertyChanged(nameof(Category)); - } - } - [DataMember] - private string? category; - - [DataMember(Order = 6)] - public DateTime Date - { - get => date; - set - { - if (date == value) - return; - date = value; - OnPropertyChanged(nameof(Date)); - } - } - [DataMember] - private DateTime date; - - public Transactions(bool type, double sum, Account involvedAccounts/*, string category*/, int id, DateTime date) - { - Type = type; - Sum = sum; - Id = id; - InvolvedAccounts = involvedAccounts; - //Category = category; - Date = date; - } - - public void ChangeCategory(string newCateg) - { - Category = newCateg; - } - - public event PropertyChangedEventHandler? PropertyChanged; - } -} -- 2.36.3 From be1e9f941b7a16bf90bd77d8f56810f1ceabb663 Mon Sep 17 00:00:00 2001 From: "titouan.louvet" Date: Tue, 6 Jun 2023 11:36:10 +0200 Subject: [PATCH 03/27] Added transaction --- src/Banquale/Model/Transaction.cs | 110 ++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 src/Banquale/Model/Transaction.cs diff --git a/src/Banquale/Model/Transaction.cs b/src/Banquale/Model/Transaction.cs new file mode 100644 index 0000000..96645d1 --- /dev/null +++ b/src/Banquale/Model/Transaction.cs @@ -0,0 +1,110 @@ +using System.ComponentModel; +using System.Runtime.Serialization; + +namespace Model +{ + [DataContract(IsReference = true)] + public class Transactions : INotifyPropertyChanged + { + + void OnPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + [DataMember(Order = 1)] + public int Id { get; private set; } + + [DataMember(Order = 2)] + public bool Type + { + get => type; + set + { + if(type == value) + return; + type = value; + OnPropertyChanged(nameof(Type)); + } + } + [DataMember] + + private bool type; + + [DataMember(Order = 3)] + public double Sum + { + get => sum; + set + { + if (sum == value) + return; + sum = value; + OnPropertyChanged(nameof(Sum)); + } + } + [DataMember] + private double sum; + + [DataMember(Order = 4)] + public Account InvolvedAccounts + { + get => involvedAccounts; + set + { + if (involvedAccounts == value) + return; + involvedAccounts = value; + OnPropertyChanged(nameof(InvolvedAccounts)); + } + } + [DataMember] + private Account involvedAccounts; + + [DataMember(Order = 5)] + public string Category + { + get => category; + set + { + if (category == value) + return; + category = value; + OnPropertyChanged(nameof(Category)); + } + } + [DataMember] + private string? category; + + [DataMember(Order = 6)] + public DateTime Date + { + get => date; + set + { + if (date == value) + return; + date = value; + OnPropertyChanged(nameof(Date)); + } + } + [DataMember] + private DateTime date; + + public Transactions(bool type, double sum, Account involvedAccounts/*, string category*/, int id, DateTime date) + { + Type = type; + Sum = sum; + Id = id; + InvolvedAccounts = involvedAccounts; + //Category = category; + Date = date; + } + + public void ChangeCategory(string newCateg) + { + Category = newCateg; + } + + public event PropertyChangedEventHandler? PropertyChanged; + } +} -- 2.36.3 From 645a542963f61a724198c1ace4f28de0549e6079 Mon Sep 17 00:00:00 2001 From: "titouan.louvet" Date: Tue, 6 Jun 2023 11:41:57 +0200 Subject: [PATCH 04/27] Added changed --- src/Banquale/Banquale/Stub/Stub.cs | 12 ++++++------ src/Banquale/Model/Account.cs | 10 +++++----- src/Banquale/Model/Manager.cs | 4 ++-- src/Banquale/Model/Transaction.cs | 4 ++-- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/Banquale/Banquale/Stub/Stub.cs b/src/Banquale/Banquale/Stub/Stub.cs index 5242d6d..ae8626e 100644 --- a/src/Banquale/Banquale/Stub/Stub.cs +++ b/src/Banquale/Banquale/Stub/Stub.cs @@ -25,15 +25,15 @@ namespace Banquale.Stub Account Account3 = new Account(3519, "Perotte", "FR7663522541416969585847002"); - Transactions Transactions1 = new Transactions(true, 55, Account1, 1, new DateTime(2023, 6, 21, 15, 29, 20)); - Transactions Transactions12 = new Transactions(true, 105, Account1, 2, new DateTime(2023, 8, 17, 18, 54, 35)); - Transactions Transactions13 = new Transactions(true, 187, Account1, 3, new DateTime(2023, 5, 3, 8, 39, 49)); - Transactions Transactions2 = new Transactions(false, 54.99, Account2, 4, new DateTime(2022, 8, 15)); - Transactions Transactions3 = new Transactions(true, 1000, Account3, 5, new DateTime(2020, 9, 1, 20, 00, 00)); + Transaction Transactions1 = new Transaction(true, 55, Account1, 1, new DateTime(2023, 6, 21, 15, 29, 20)); + Transaction Transactions12 = new Transaction(true, 105, Account1, 2, new DateTime(2023, 8, 17, 18, 54, 35)); + Transaction Transactions13 = new Transaction(true, 187, Account1, 3, new DateTime(2023, 5, 3, 8, 39, 49)); + Transaction Transactions2 = new Transaction(false, 54.99, Account2, 4, new DateTime(2022, 8, 15)); + Transaction Transactions3 = new Transaction(true, 1000, Account3, 5, new DateTime(2020, 9, 1, 20, 00, 00)); Debug.WriteLine(Customer1.Name, Customer1.Password); HashSet CustomersList = new HashSet(); - List TransactionsList= new List(); + List TransactionsList= new List(); List AccountsList = new List(); diff --git a/src/Banquale/Model/Account.cs b/src/Banquale/Model/Account.cs index 0e0c6bb..da19694 100644 --- a/src/Banquale/Model/Account.cs +++ b/src/Banquale/Model/Account.cs @@ -82,7 +82,7 @@ namespace Model private string ibanHide; [DataMember(Order = 5)] - public List TransactionsList + public List TransactionsList { get => transactionsList; set @@ -92,20 +92,20 @@ namespace Model } } - private List transactionsList; + private List transactionsList; 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 { - Transactions transaction = new Transactions(type, sum, involvedAccount, nb, DateTime.Now); + Transaction transaction = new Transaction(type, sum, involvedAccount, nb, DateTime.Now); TransactionsList.Add(transaction); Balance = Balance-sum; involvedAccount.DoTransactions(this, sum, !type, nb+1); } else // Sinon, c'est un crédit, on a juste à l'ajouter ànotre liste de transactions { - TransactionsList.Add(new Transactions(type, sum, involvedAccount, nb, DateTime.Now)); + TransactionsList.Add(new Transaction(type, sum, involvedAccount, nb, DateTime.Now)); Balance = Balance+sum; } @@ -116,7 +116,7 @@ namespace Model Balance = balance; Name = name; IBAN = iban; - TransactionsList = new List(); + TransactionsList = new List(); IBANHide = IBANToString(); } diff --git a/src/Banquale/Model/Manager.cs b/src/Banquale/Model/Manager.cs index 4ccb2e0..a36a22b 100644 --- a/src/Banquale/Model/Manager.cs +++ b/src/Banquale/Model/Manager.cs @@ -49,7 +49,7 @@ namespace Model private Account selectedAccount; - public Transactions SelectedTransaction + public Transaction SelectedTransaction { get => selectedTransaction; set @@ -61,7 +61,7 @@ namespace Model } } - private Transactions selectedTransaction; + private Transaction selectedTransaction; diff --git a/src/Banquale/Model/Transaction.cs b/src/Banquale/Model/Transaction.cs index 96645d1..fa006f4 100644 --- a/src/Banquale/Model/Transaction.cs +++ b/src/Banquale/Model/Transaction.cs @@ -4,7 +4,7 @@ using System.Runtime.Serialization; namespace Model { [DataContract(IsReference = true)] - public class Transactions : INotifyPropertyChanged + public class Transaction : INotifyPropertyChanged { void OnPropertyChanged(string propertyName) @@ -90,7 +90,7 @@ namespace Model [DataMember] private DateTime date; - public Transactions(bool type, double sum, Account involvedAccounts/*, string category*/, int id, DateTime date) + public Transaction(bool type, double sum, Account involvedAccounts/*, string category*/, int id, DateTime date) { Type = type; Sum = sum; -- 2.36.3 From b9413793a448a7f6b81d48c3a21bea9358db9927 Mon Sep 17 00:00:00 2001 From: "titouan.louvet" Date: Wed, 7 Jun 2023 14:44:33 +0200 Subject: [PATCH 05/27] Added Persistence with LINQ --- .../DataContractPersLINQ.cs | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/Banquale/Banquale/DataContractPersistance/DataContractPersLINQ.cs 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); + } + } + } +} -- 2.36.3 From b098e94ba242111f288428e1e0a2c380c9ca6399 Mon Sep 17 00:00:00 2001 From: anperederi Date: Thu, 8 Jun 2023 15:07:52 +0200 Subject: [PATCH 06/27] update font and fontsize --- .../Banquale/Views/CreateCustomerPage.xaml | 21 +++++++++---------- .../Banquale/Views/CreateCustomerPage.xaml.cs | 12 +++++++---- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/Banquale/Banquale/Views/CreateCustomerPage.xaml b/src/Banquale/Banquale/Views/CreateCustomerPage.xaml index f92cbfd..f970cc9 100644 --- a/src/Banquale/Banquale/Views/CreateCustomerPage.xaml +++ b/src/Banquale/Banquale/Views/CreateCustomerPage.xaml @@ -8,7 +8,7 @@