diff --git a/src/Banquale/Banquale/App.xaml.cs b/src/Banquale/Banquale/App.xaml.cs index b1b8ce2..c074ff2 100644 --- a/src/Banquale/Banquale/App.xaml.cs +++ b/src/Banquale/Banquale/App.xaml.cs @@ -22,10 +22,5 @@ public partial class App : Application MainPage = new AppShell(); - //MyManager.SelectedTransaction = MyManager.CustomersList[0].AccountsList[0].TransactionsList[0]; - - //MainPage = new Views.TransactionsPage(); - } - } diff --git a/src/Banquale/Banquale/AppShell.xaml.cs b/src/Banquale/Banquale/AppShell.xaml.cs index b345884..833df87 100644 --- a/src/Banquale/Banquale/AppShell.xaml.cs +++ b/src/Banquale/Banquale/AppShell.xaml.cs @@ -1,26 +1,18 @@ using Banquale.Views; using Banquale.Views.Category; using Banquale.Views.Transfer; +using Model; + namespace Banquale; public partial class AppShell : Shell { - public AppShell() + + public Manager Mgr => (App.Current as App).MyManager; + + public AppShell() { InitializeComponent(); - RegisterRoutes(); - } - - private void RegisterRoutes() - { - Routing.RegisterRoute("balance/categorydetails", typeof(CategoryPage)); - Routing.RegisterRoute("balance/newpagedetails", typeof(NewPage1)); - Routing.RegisterRoute("menu/requestdetails", typeof(RequestPage)); - Routing.RegisterRoute("menu/ribdetails", typeof(RibPage)); - Routing.RegisterRoute("menu/transferdetails", typeof(TransferPage)); - Routing.RegisterRoute("connection/consultant", typeof(ConsultantHomePage)); - Routing.RegisterRoute("consultant/idpage", typeof(ConsultantIdPage)); - Routing.RegisterRoute("consultant/createcustomer", typeof(CreateCustomerPage)); } } \ No newline at end of file diff --git a/src/Banquale/Banquale/Banquale.csproj b/src/Banquale/Banquale/Banquale.csproj index 6ef5ed2..30cee84 100644 --- a/src/Banquale/Banquale/Banquale.csproj +++ b/src/Banquale/Banquale/Banquale.csproj @@ -34,6 +34,7 @@ + diff --git a/src/Banquale/Banquale/DataContractPersistance/DataContractPersJSON.cs b/src/Banquale/Banquale/DataContractPersistance/DataContractPersJSON.cs index 85df3fb..e8847e5 100644 --- a/src/Banquale/Banquale/DataContractPersistance/DataContractPersJSON.cs +++ b/src/Banquale/Banquale/DataContractPersistance/DataContractPersJSON.cs @@ -11,6 +11,9 @@ using System.Threading.Tasks; namespace Banquale.DataContractPersistance { + + // Nous ne pouvons utiliser la persitance avec JSON dans notre application car la persitance avec JSON n'accepte pas + // les références, nous sommes pourtant obligé d'utiliser des références pour la sauvegarde des transactions public class DataContractPersJSON : IPersistenceManager { @@ -18,7 +21,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 +36,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..1578188 100644 --- a/src/Banquale/Banquale/DataContractPersistance/DataContractPersXML.cs +++ b/src/Banquale/Banquale/DataContractPersistance/DataContractPersXML.cs @@ -10,12 +10,11 @@ namespace Banquale.DataContractPersistance { public class DataContractPersXML : IPersistenceManager { - //public string FilePath { get; set; } = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/datbase.xml"; 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)); @@ -33,23 +32,10 @@ namespace Banquale.DataContractPersistance data = new DataToPersist(); // Si le fichier n'existe pas, créez une nouvelle liste } - // List CustomersList; - //Consultant Consultant; - - //using (Stream s = File.OpenRead(Path.Combine(FilePath, FileNameCustomer))) - //{ - // CustomersList = serializer.ReadObject(s) as List; - // } - - // using (Stream s = File.OpenRead(Path.Combine(FilePath, FileNameConsultant))) - // { - // Consultant = serializer2.ReadObject(s) as Consultant; - // } - 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 @@ -74,33 +60,6 @@ namespace Banquale.DataContractPersistance } } - - // var serializer = new DataContractSerializer(typeof(List)); - // var serializer2 = new DataContractSerializer(typeof(Consultant)); - - // if (!Directory.Exists(FilePath)) - //{ - // Debug.WriteLine("Directory created"); - // Debug.WriteLine(FilePath); - // Directory.CreateDirectory(FilePath); - //} - - //var settings = new XmlWriterSettings() { Indent = true }; - // using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileNameCustomer))) - //{ - // using (XmlWriter writer = XmlWriter.Create(tw, settings)) - // { - // serializer.WriteObject(writer, cu); - // } - //} - - // using (TextWriter tw2 = File.CreateText(Path.Combine(FilePath, FileNameConsultant))) - // { - // using (XmlWriter writer2 = XmlWriter.Create(tw2, settings)) - // { - // serializer.WriteObject(writer2, co); - // } - // } } } } 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..c544ad9 100644 --- a/src/Banquale/Banquale/Stub/Stub.cs +++ b/src/Banquale/Banquale/Stub/Stub.cs @@ -8,10 +8,34 @@ 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 + Consultant.MessagesList.Add(new Message("ZUvuzveu", "ZBUBUE")); + Consultant.MessagesList.Add(new Message("zcdz", "rvri")); + Consultant.MessagesList.Add(new Message("vjkebor", "rbv")); + Consultant.MessagesList.Add(new Message("alce", "ubec")); + Consultant.MessagesList.Add(new Message("ZUvuzveu", "ZBUBUE")); + Consultant.MessagesList.Add(new Message("zcdz", "rvri")); + Consultant.MessagesList.Add(new Message("vjkebor", "rbv")); + Consultant.MessagesList.Add(new Message("alce", "ubec")); + Consultant.MessagesList.Add(new Message("ZUvuzveu", "ZBUBUE")); + Consultant.MessagesList.Add(new Message("zcdz", "rvri")); + Consultant.MessagesList.Add(new Message("vjkebor", "rbv")); + Consultant.MessagesList.Add(new Message("alce", "ubec")); + Consultant.MessagesList.Add(new Message("ZUvuzveu", "ZBUBUE")); + Consultant.MessagesList.Add(new Message("zcdz", "rvri")); + Consultant.MessagesList.Add(new Message("vjkebor", "rbv")); + Consultant.MessagesList.Add(new Message("alce", "ubec")); + Consultant.MessagesList.Add(new Message("ZUvuzveu", "ZBUBUE")); + Consultant.MessagesList.Add(new Message("zcdz", "rvri")); + Consultant.MessagesList.Add(new Message("vjkebor", "rbv")); + Consultant.MessagesList.Add(new Message("alce", "ubec")); + Consultant.MessagesList.Add(new Message("ZUvuzveu", "ZBUBUE")); + Consultant.MessagesList.Add(new Message("zcdz", "rvri")); + Consultant.MessagesList.Add(new Message("vjkebor", "rbv")); + Consultant.MessagesList.Add(new Message("alce", "ubec")); Consultant.MessagesList.Add(new Message("ZUvuzveu", "ZBUBUE")); Consultant.MessagesList.Add(new Message("zcdz", "rvri")); Consultant.MessagesList.Add(new Message("vjkebor", "rbv")); @@ -25,16 +49,16 @@ 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)); - Transaction Transaction2 = new Transaction(false, 54.99, Account2, 4, new DateTime(2022, 8, 15)); - Transaction Transaction3 = new Transaction(true, 1000, Account3, 5, new DateTime(2020, 9, 1, 20, 00, 00)); + Transaction Transaction1 = new Transaction(true, 55, Account2, new DateTime(2023, 6, 21, 15, 29, 20)); + Transaction Transaction12 = new Transaction(true, 105, Account2, new DateTime(2023, 8, 17, 18, 54, 35)); + Transaction Transaction13 = new Transaction(true, 187, Account3, new DateTime(2023, 5, 3, 8, 39, 49)); + Transaction Transaction2 = new Transaction(false, 54.99, Account2, new DateTime(2022, 8, 15)); + Transaction Transaction3 = new Transaction(true, 1000, Account3, 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(); @@ -46,16 +70,17 @@ namespace Banquale.Stub //Account2.TransactionsList.Add(Transaction2); - Account1.DoTransactions(Account2, 55, true, 1); - Account1.DoTransactions(Account2, 105, true, 2); - Account1.DoTransactions(Account3, 187, true, 3); - Account1.DoTransactions(Account2, 54.99, false, 4); - Account1.DoTransactions(Account3, 1000, false, 5); + Account1.DoTransactions(Account2, 55, true); + Account1.DoTransactions(Account2, 105, true); + Account1.DoTransactions(Account3, 187, true); + Account1.DoTransactions(Account2, 54.99, false); + Account1.DoTransactions(Account3, 1000, false); Customer1.AccountsList.Add(Account1); Customer1.AccountsList.Add(Account2); + Customer2.AccountsList.Add(Account3); CustomersList.Add(Customer1); @@ -64,7 +89,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/Banquale/Views/Balance/BalancePage.xaml b/src/Banquale/Banquale/Views/Balance/BalancePage.xaml index 0ac4134..d275690 100644 --- a/src/Banquale/Banquale/Views/Balance/BalancePage.xaml +++ b/src/Banquale/Banquale/Views/Balance/BalancePage.xaml @@ -3,8 +3,15 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Banquale.Views.Balance.BalancePage" xmlns:local="clr-namespace:Banquale.Views.Balance" - Shell.NavBarIsVisible="False"> + xmlns:conv="clr-namespace:Banquale.Views.Converters" + Shell.NavBarIsVisible="False" + Shell.TabBarIsVisible="True"> + + + + + - - - - diff --git a/src/Banquale/Banquale/Views/Balance/BalancePage.xaml.cs b/src/Banquale/Banquale/Views/Balance/BalancePage.xaml.cs index 9cb857f..87950a3 100644 --- a/src/Banquale/Banquale/Views/Balance/BalancePage.xaml.cs +++ b/src/Banquale/Banquale/Views/Balance/BalancePage.xaml.cs @@ -1,4 +1,5 @@ -using Model; +using Android.Telephony; +using Model; namespace Banquale.Views.Balance; @@ -7,22 +8,29 @@ public partial class BalancePage : ContentPage { public Manager Mgr => (App.Current as App).MyManager; + //private BalanceView MybalanceView; public BalancePage() { InitializeComponent(); BindingContext = Mgr.SelectedAccount; - if(Mgr.IsConsultant == true) - { - //Label lext = new Label { Text = "Hello" }; - //Grid.Add(lext); - Image backArrow = new Image { Source = "{StaticResource AccountIcon}", HeightRequest = 100 }; - Grid.Add(backArrow); - } + //MybalanceView = balanceViewContainer.FindByName("balanceViewContainer"); } - public async void Balance_Clicked(object sender, EventArgs e) + public void RefreshPage() { - await Shell.Current.Navigation.PushAsync(new NewPage1()); + BindingContext = Mgr.SelectedAccount; + //MybalanceView.RefreshView(); + } + + public async void Transaction_Clicked(Object sender, EventArgs e) + { + var selectedItem = (sender as Grid)?.BindingContext as Transaction; + + if (selectedItem != null) + { + Mgr.SelectedTransaction = selectedItem; + await Navigation.PushModalAsync(new TransactionsPage()); + } } } diff --git a/src/Banquale/Banquale/Views/Balance/BalanceView.xaml b/src/Banquale/Banquale/Views/Balance/BalanceView.xaml index 3136699..f46c327 100644 --- a/src/Banquale/Banquale/Views/Balance/BalanceView.xaml +++ b/src/Banquale/Banquale/Views/Balance/BalanceView.xaml @@ -1,10 +1,18 @@  + + + + + + + @@ -26,11 +34,6 @@ -