From 1f994eb49d759c6be17f359d0d90ac98a0e3d974 Mon Sep 17 00:00:00 2001 From: anperederi Date: Wed, 7 Jun 2023 15:54:14 +0200 Subject: [PATCH 1/7] add collection --- src/Banquale/Banquale/AppShell.xaml | 3 +- src/Banquale/Banquale/Banquale.csproj | 2 + .../Views/{ => Balance}/BalancePage.xaml | 62 ++----------------- .../Views/Balance/BalancePage.xaml.cs | 29 +++++++++ .../Banquale/Views/Balance/BalanceView.xaml | 59 ++++++++++++++++++ .../Views/Balance/BalanceView.xaml.cs | 41 ++++++++++++ .../Banquale/Views/BalancePage.xaml.cs | 53 ---------------- .../Banquale/Views/Category/CategoryView.xaml | 60 ++++++++++++++---- .../Banquale/Views/ConsultantIdPage.xaml.cs | 46 ++++++++++++-- .../Banquale/Views/SwitchAccountPage.xaml.cs | 24 +++++-- src/Banquale/Model/Account.cs | 3 +- src/Banquale/Model/Manager.cs | 2 + 12 files changed, 252 insertions(+), 132 deletions(-) rename src/Banquale/Banquale/Views/{ => Balance}/BalancePage.xaml (53%) create mode 100644 src/Banquale/Banquale/Views/Balance/BalancePage.xaml.cs create mode 100644 src/Banquale/Banquale/Views/Balance/BalanceView.xaml create mode 100644 src/Banquale/Banquale/Views/Balance/BalanceView.xaml.cs delete mode 100644 src/Banquale/Banquale/Views/BalancePage.xaml.cs diff --git a/src/Banquale/Banquale/AppShell.xaml b/src/Banquale/Banquale/AppShell.xaml index 68c2ba6..f3a2300 100644 --- a/src/Banquale/Banquale/AppShell.xaml +++ b/src/Banquale/Banquale/AppShell.xaml @@ -4,6 +4,7 @@ xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:views="clr-namespace:Banquale.Views" + xmlns:balance="clr-namespace:Banquale.Views.Balance" xmlns:transfer="clr-namespace:Banquale.Views.Transfer" Shell.FlyoutBehavior="Disabled"> @@ -15,7 +16,7 @@ diff --git a/src/Banquale/Banquale/Banquale.csproj b/src/Banquale/Banquale/Banquale.csproj index 44d300a..6ef5ed2 100644 --- a/src/Banquale/Banquale/Banquale.csproj +++ b/src/Banquale/Banquale/Banquale.csproj @@ -60,6 +60,7 @@ + @@ -71,6 +72,7 @@ + diff --git a/src/Banquale/Banquale/Views/BalancePage.xaml b/src/Banquale/Banquale/Views/Balance/BalancePage.xaml similarity index 53% rename from src/Banquale/Banquale/Views/BalancePage.xaml rename to src/Banquale/Banquale/Views/Balance/BalancePage.xaml index 0ef8203..cda652a 100644 --- a/src/Banquale/Banquale/Views/BalancePage.xaml +++ b/src/Banquale/Banquale/Views/Balance/BalancePage.xaml @@ -1,11 +1,12 @@  - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/src/Banquale/Banquale/Views/Balance/BalancePage.xaml.cs b/src/Banquale/Banquale/Views/Balance/BalancePage.xaml.cs new file mode 100644 index 0000000..c294f20 --- /dev/null +++ b/src/Banquale/Banquale/Views/Balance/BalancePage.xaml.cs @@ -0,0 +1,29 @@ +using Model; + +namespace Banquale.Views.Balance; + + +public partial class BalancePage : ContentPage +{ + public Manager Mgr => (App.Current as App).MyManager; + + public BalancePage() + { + InitializeComponent(); + BindingContext = Mgr.SelectedAccount; + if(Mgr.IsConsultant == true) + { + //Label lext = new Label { Text = "Hello" }; + //Grid.Add(lext); + Image backArrow = new Image { HeightRequest = 100 }; + backArrow.SetBinding(Image.SourceProperty, "backArrowIcon"); + Grid.Add(backArrow); + } + } + + public async void Balance_Clicked(object sender, EventArgs e) + { + await Shell.Current.Navigation.PushAsync(new NewPage1()); + } + +} diff --git a/src/Banquale/Banquale/Views/Balance/BalanceView.xaml b/src/Banquale/Banquale/Views/Balance/BalanceView.xaml new file mode 100644 index 0000000..913bbe3 --- /dev/null +++ b/src/Banquale/Banquale/Views/Balance/BalanceView.xaml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Banquale/Banquale/Views/Balance/BalanceView.xaml.cs b/src/Banquale/Banquale/Views/Balance/BalanceView.xaml.cs new file mode 100644 index 0000000..c24ef72 --- /dev/null +++ b/src/Banquale/Banquale/Views/Balance/BalanceView.xaml.cs @@ -0,0 +1,41 @@ +using System.Diagnostics; +using Model; + +namespace Banquale.Views.Balance; + +public partial class BalanceView : ContentView +{ + + public Manager Mgr => (App.Current as App).MyManager; + + public BalanceView() + { + InitializeComponent(); + BindingContext = Mgr.SelectedAccount; + } + + public async void Transaction_Clicked(Object sender, EventArgs e) + { + //uint TransactionId = Convert.ToUInt32(transactionId.Text); + + //if (string.IsNullOrWhiteSpace(idLabel.Text)) + //{ + // //await DisplayAlert("Erreur", "Aucune transaction présente", "OK"); + // Debug.WriteLine("Erreur1"); + // return; + //} + + //Transaction transaction = Mgr.SelectedAccount.TransactionsList.FirstOrDefault(u => u.Id == TransactionId); + //if (transaction == null) + //{ + // Debug.WriteLine("Erreur2"); + // //await DisplayAlert("Erreur", "La transaction n'éxiste pas !", "OK"); + // return; + //} + + //Mgr.SelectedTransaction = transaction; + + + await Navigation.PushModalAsync(new TransactionsPage()); + } +} diff --git a/src/Banquale/Banquale/Views/BalancePage.xaml.cs b/src/Banquale/Banquale/Views/BalancePage.xaml.cs deleted file mode 100644 index 33a525b..0000000 --- a/src/Banquale/Banquale/Views/BalancePage.xaml.cs +++ /dev/null @@ -1,53 +0,0 @@ -using Model; - -namespace Banquale.Views; - - -public partial class BalancePage : ContentPage -{ - public Manager Mgr => (App.Current as App).MyManager; - - public BalancePage() - { - InitializeComponent(); - BindingContext = Mgr.SelectedAccount; - //BindingContext = new Account(999, "Tatouille", "FR76 9161 9581 6296 8415 2361 004"); - } - - - public async void Transactions_Clicked(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e) - { - Mgr.SelectedTransaction = Mgr.SelectedAccount.TransactionsList[0]; - //Mgr.SelectedTransaction = Mgr.PropertyChanged; - await Shell.Current.Navigation.PushAsync(new TransactionsPage()); - } - - public async void Balance_Clicked(object sender, EventArgs e) - { - await Shell.Current.Navigation.PushAsync(new NewPage1()); - } - - public async void Transaction_Clicked(Object sender, EventArgs e) - { - uint TransactionId = Convert.ToUInt32(idLabel.Text); - - if (string.IsNullOrWhiteSpace(idLabel.Text)) - { - await DisplayAlert("Erreur", "Aucune transaction présente", "OK"); - return; - } - - Transaction transaction = Mgr.SelectedAccount.TransactionsList.FirstOrDefault(u => u.Id == TransactionId); - if (transaction == null) - { - await DisplayAlert("Erreur", "La transaction n'éxiste pas !", "OK"); - return; - } - - Mgr.SelectedTransaction = transaction; - - - await Navigation.PushModalAsync(new TransactionsPage()); - } - -} diff --git a/src/Banquale/Banquale/Views/Category/CategoryView.xaml b/src/Banquale/Banquale/Views/Category/CategoryView.xaml index 21166d5..937491d 100644 --- a/src/Banquale/Banquale/Views/Category/CategoryView.xaml +++ b/src/Banquale/Banquale/Views/Category/CategoryView.xaml @@ -5,17 +5,55 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Banquale/Banquale/Views/ConsultantIdPage.xaml.cs b/src/Banquale/Banquale/Views/ConsultantIdPage.xaml.cs index 8d54a38..040f54e 100644 --- a/src/Banquale/Banquale/Views/ConsultantIdPage.xaml.cs +++ b/src/Banquale/Banquale/Views/ConsultantIdPage.xaml.cs @@ -1,24 +1,60 @@ +using System.Diagnostics; using Banquale.Views; +using Model; + namespace Banquale.Views; public partial class ConsultantIdPage : ContentPage { - public ConsultantIdPage() + public Manager Mgr => (App.Current as App).MyManager; + + public ConsultantIdPage() { InitializeComponent(); } + //public async void Connection_Clicked(Object sender, EventArgs e) + //{ + // string id = ident.Text; + + // if (string.IsNullOrWhiteSpace(id)) + // { + // await DisplayAlert("Erreur", "l'id ne doit pas être nulle", "OK"); + // return; + // } + + // await Navigation.PushModalAsync(new Balance.BalancePage()); + //} + public async void Connection_Clicked(Object sender, EventArgs e) { - string id = ident.Text; + uint currentId = Convert.ToUInt32(ident.Text); + + if (string.IsNullOrWhiteSpace(ident.Text)) + { + await DisplayAlert("Erreur", "Il faut rentrer un ID", "OK"); + return; + } + + if (currentId == 0) + { + await DisplayAlert("Erreur", "Ce compte est innaccessible", "OK"); + return; + } - if (string.IsNullOrWhiteSpace(id)) + Customer customer = Mgr.CustomersList.FirstOrDefault(u => u.Id == currentId); + if (customer == null) { - await DisplayAlert("Erreur", "l'id ne doit pas être nulle", "OK"); + await DisplayAlert("Erreur", "L'id entré est incorrect ou n'existe pas.", "OK"); return; } - await Navigation.PushModalAsync(new BalancePage()); + Mgr.SelectedCustomer = customer; + + Debug.WriteLine(Mgr.IsConsultant); + + + await Navigation.PushModalAsync(new SwitchAccountPage()); } } \ No newline at end of file diff --git a/src/Banquale/Banquale/Views/SwitchAccountPage.xaml.cs b/src/Banquale/Banquale/Views/SwitchAccountPage.xaml.cs index 589824b..0854e47 100644 --- a/src/Banquale/Banquale/Views/SwitchAccountPage.xaml.cs +++ b/src/Banquale/Banquale/Views/SwitchAccountPage.xaml.cs @@ -1,3 +1,4 @@ +using System.Diagnostics; using Model; namespace Banquale.Views; @@ -15,12 +16,27 @@ public partial class SwitchAccountPage : ContentPage public async void Transfer_Clicked(object sender, EventArgs e) { Mgr.SelectedAccount = Mgr.SelectedCustomer.AccountsList[0]; // 0 � changer - - await Shell.Current.GoToAsync("//balance"); + if(Mgr.IsConsultant == true) + { + await Shell.Current.Navigation.PushAsync(new Balance.BalancePage()); + } + else + { + await Shell.Current.GoToAsync("//balance"); + } } - async void DisconnectionClicked(System.Object sender, System.EventArgs e) + + async void DisconnectionClicked(object sender, EventArgs e) { - await Shell.Current.GoToAsync("///connection"); + if(Mgr.IsConsultant == true) + { + //await Shell.Current.GoToAsync(; + Debug.WriteLine("Hello"); + } + else + { + await Shell.Current.GoToAsync("///connection"); + } } } \ No newline at end of file diff --git a/src/Banquale/Model/Account.cs b/src/Banquale/Model/Account.cs index 400ccde..3649cd0 100644 --- a/src/Banquale/Model/Account.cs +++ b/src/Banquale/Model/Account.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.Linq; @@ -108,7 +109,7 @@ namespace Model /// Obtient ou définit la liste des transactions effectuées sur le compte. /// [DataMember(Order = 5)] - public List TransactionsList { get; set; } = new List(); + public ObservableCollection TransactionsList { get; set; } = new ObservableCollection(); /// /// Effectue une transaction entre le compte courant et un compte tiers. diff --git a/src/Banquale/Model/Manager.cs b/src/Banquale/Model/Manager.cs index 61d5862..af8856b 100644 --- a/src/Banquale/Model/Manager.cs +++ b/src/Banquale/Model/Manager.cs @@ -27,6 +27,8 @@ namespace Model [DataMember] public List CustomersList { get; private set; } // devient un set + public List CategoryList { get; private set; } = new List {"Automobile", "Santé", "Abonnement", "Logement", "Impôts et taxes", "Courses", "Loisirs et sorties", "Enfant(s)"}; + /// /// Consultant assigné au gestionnaire. /// From 4ec4d077e4422e194aa8a7468c83419e0a706207 Mon Sep 17 00:00:00 2001 From: "titouan.louvet" Date: Wed, 7 Jun 2023 15:55:57 +0200 Subject: [PATCH 2/7] Try to fix affiche bug with message list --- src/Banquale/Banquale/Stub/Stub.cs | 24 ++++++------ .../Banquale/Views/ConnectionPage.xaml.cs | 2 +- .../Banquale/Views/MessageListPage.xaml | 33 ++++++++--------- .../Banquale/Views/MessageListPage.xaml.cs | 2 +- .../Views/Transfer/RequestPage.xaml.cs | 2 +- src/Banquale/Model/Message.cs | 37 +++++++++++++++++-- src/Banquale/Model/Transaction.cs | 2 +- 7 files changed, 66 insertions(+), 36 deletions(-) diff --git a/src/Banquale/Banquale/Stub/Stub.cs b/src/Banquale/Banquale/Stub/Stub.cs index 3749c51..b3cdec2 100644 --- a/src/Banquale/Banquale/Stub/Stub.cs +++ b/src/Banquale/Banquale/Stub/Stub.cs @@ -25,26 +25,26 @@ 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 Transaction1 = new Transaction(true, 55, Account1, 1, new DateTime(2023, 6, 21, 15, 29, 20)); + Transaction Transaction12 = new Transaction(true, 105, Account1, 2, new DateTime(2023, 8, 17, 18, 54, 35)); + Transaction Transaction13 = new Transaction(true, 187, Account1, 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)); Debug.WriteLine(Customer1.Name, Customer1.Password); List CustomersList = new List(); - List TransactionsList= new List(); + List TransactionsList= new List(); List AccountsList = new List(); - Account1.TransactionsList.Add(Transactions1); - Account1.TransactionsList.Add(Transactions12); - Account1.TransactionsList.Add(Transactions13); - Account1.TransactionsList.Add(Transactions2); - Account1.TransactionsList.Add(Transactions3); + Account1.TransactionsList.Add(Transaction1); + Account1.TransactionsList.Add(Transaction12); + Account1.TransactionsList.Add(Transaction13); + Account1.TransactionsList.Add(Transaction2); + Account1.TransactionsList.Add(Transaction3); - Account2.TransactionsList.Add(Transactions2); + Account2.TransactionsList.Add(Transaction2); Customer1.AccountsList.Add(Account1); Customer1.AccountsList.Add(Account2); diff --git a/src/Banquale/Banquale/Views/ConnectionPage.xaml.cs b/src/Banquale/Banquale/Views/ConnectionPage.xaml.cs index 245e627..2d2f00d 100644 --- a/src/Banquale/Banquale/Views/ConnectionPage.xaml.cs +++ b/src/Banquale/Banquale/Views/ConnectionPage.xaml.cs @@ -22,7 +22,7 @@ public partial class ConnectionPage : ContentPage return; } - if(currentId == 0) + if(currentId == 0 && password == "consultant") { Mgr.IsConsultant = true; await Navigation.PushModalAsync(new ConsultantHomePage()); diff --git a/src/Banquale/Banquale/Views/MessageListPage.xaml b/src/Banquale/Banquale/Views/MessageListPage.xaml index e8614c1..a3b2c09 100644 --- a/src/Banquale/Banquale/Views/MessageListPage.xaml +++ b/src/Banquale/Banquale/Views/MessageListPage.xaml @@ -3,20 +3,19 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Banquale.Views.MessageListPage" Title="MessageListPage" - Shell.NavBarIsVisible="False"> + Shell.NavBarIsVisible="True"> - diff --git a/src/Banquale/Banquale/Views/MessageListPage.xaml.cs b/src/Banquale/Banquale/Views/MessageListPage.xaml.cs index 3bfe313..546ef41 100644 --- a/src/Banquale/Banquale/Views/MessageListPage.xaml.cs +++ b/src/Banquale/Banquale/Views/MessageListPage.xaml.cs @@ -12,6 +12,6 @@ public partial class MessageListPage : ContentPage { Debug.WriteLine(Mgr.Consultant.MessagesList[0].Subject); InitializeComponent(); - BindingContext = Mgr.Consultant; + BindingContext = Mgr; } } diff --git a/src/Banquale/Banquale/Views/Transfer/RequestPage.xaml.cs b/src/Banquale/Banquale/Views/Transfer/RequestPage.xaml.cs index 3ef3402..c41832d 100644 --- a/src/Banquale/Banquale/Views/Transfer/RequestPage.xaml.cs +++ b/src/Banquale/Banquale/Views/Transfer/RequestPage.xaml.cs @@ -14,7 +14,7 @@ public partial class RequestPage : ContentPage public async void Send_Clicked(Object sender, EventArgs e) { - Account.DoRequest(Name.Text, IBAN.Text, Sum.Text); + //Account.DoRequest(Name.Text, IBAN.Text, Sum.Text); await Shell.Current.GoToAsync("//balance"); } } diff --git a/src/Banquale/Model/Message.cs b/src/Banquale/Model/Message.cs index 44133dd..205a296 100644 --- a/src/Banquale/Model/Message.cs +++ b/src/Banquale/Model/Message.cs @@ -3,6 +3,8 @@ /// \author Votre nom using System; +using System.ComponentModel; +using System.Runtime.CompilerServices; using System.Runtime.Serialization; namespace Model @@ -11,20 +13,49 @@ namespace Model /// Classe représentant un message. /// [DataContract] - public class Message + public class Message : INotifyPropertyChanged { + + public event PropertyChangedEventHandler? PropertyChanged; + + void OnPropertyChanged([CallerMemberName] string? propertyName = null) + => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + /// /// Sujet du message. /// [DataMember] - public string Subject { get; private set; } + public string Subject + { + get => subject; + set + { + if (subject == value) return; + subject = value; + OnPropertyChanged(); + } + } + + private string subject; + + /// /// Description du message. /// [DataMember] - public string Description { get; private set; } + public string Description + { + get => description; + set + { + if (description == value) return; + description = value; + OnPropertyChanged(); + } + } + private string description; /// /// Constructeur de la classe Message. /// diff --git a/src/Banquale/Model/Transaction.cs b/src/Banquale/Model/Transaction.cs index c68e10a..420fc4c 100644 --- a/src/Banquale/Model/Transaction.cs +++ b/src/Banquale/Model/Transaction.cs @@ -12,7 +12,7 @@ namespace Model /// /// Occurs when a property value changes. /// - public event PropertyChangedEventHandler PropertyChanged; + public event PropertyChangedEventHandler? PropertyChanged; void OnPropertyChanged(string propertyName) { From ac5b66c8d19cc33d2beb64b346900a80f296f206 Mon Sep 17 00:00:00 2001 From: anperederi Date: Wed, 7 Jun 2023 16:53:34 +0200 Subject: [PATCH 3/7] create customer page --- .../Views/Balance/BalancePage.xaml.cs | 3 +- .../Banquale/Views/CreateCustomerPage.xaml | 61 ++++++++++++++++--- .../Banquale/Views/CreateCustomerPage.xaml.cs | 38 +++++++++++- 3 files changed, 88 insertions(+), 14 deletions(-) diff --git a/src/Banquale/Banquale/Views/Balance/BalancePage.xaml.cs b/src/Banquale/Banquale/Views/Balance/BalancePage.xaml.cs index c294f20..9cb857f 100644 --- a/src/Banquale/Banquale/Views/Balance/BalancePage.xaml.cs +++ b/src/Banquale/Banquale/Views/Balance/BalancePage.xaml.cs @@ -15,8 +15,7 @@ public partial class BalancePage : ContentPage { //Label lext = new Label { Text = "Hello" }; //Grid.Add(lext); - Image backArrow = new Image { HeightRequest = 100 }; - backArrow.SetBinding(Image.SourceProperty, "backArrowIcon"); + Image backArrow = new Image { Source = "{StaticResource AccountIcon}", HeightRequest = 100 }; Grid.Add(backArrow); } } diff --git a/src/Banquale/Banquale/Views/CreateCustomerPage.xaml b/src/Banquale/Banquale/Views/CreateCustomerPage.xaml index 352b83e..855c9e0 100644 --- a/src/Banquale/Banquale/Views/CreateCustomerPage.xaml +++ b/src/Banquale/Banquale/Views/CreateCustomerPage.xaml @@ -4,20 +4,61 @@ x:Class="Banquale.Views.CreateCustomerPage" Title="CreateCustomerPage"> - + -