Added transaction mechanic

pull/50/head
Titouan LOUVET 2 years ago
parent 070e7a4232
commit aeac0d807e

@ -20,7 +20,7 @@ namespace Banquale.Model
} }
[DataMember] [DataMember]
public double Balance public Double Balance
{ {
get => balance; get => balance;
set set
@ -32,7 +32,7 @@ namespace Banquale.Model
} }
} }
[DataMember] [DataMember]
private double balance; private Double balance;
[DataMember] [DataMember]
@ -84,14 +84,23 @@ namespace Banquale.Model
[DataMember] [DataMember]
public List<Transactions> TransactionsList { get; set; } = new List<Transactions>(); public List<Transactions> TransactionsList { get; set; } = new List<Transactions>();
//public bool DoTransactions(string name, string IBAN, float sum) public void DoTransactions(Account involvedAccount, Double sum, bool type)
//{ {
// List<Transactions> transactions.add(sum); if (type) // si le type est True => c'est un débit, on doit donc ajouter la transaction pour l'autre compte
// if() {
// return true; TransactionsList.Add(new Transactions(type, sum, involvedAccount, DateTime.Now));
//} Balance = Balance-sum;
involvedAccount.DoTransactions(this, sum, !type);
}
else // Sinon, c'est un crédit, on a juste à l'ajouter ànotre liste de transactions
{
TransactionsList.Add(new Transactions(type, sum, involvedAccount, DateTime.Now));
Balance = Balance+sum;
}
}
public Account(int balance, string name, string iban) public Account(Double balance, string name, string iban)
{ {
Balance = balance; Balance = balance;
Name = name; Name = name;
@ -99,15 +108,13 @@ namespace Banquale.Model
IBANHide = IBANToString(); IBANHide = IBANToString();
} }
internal static void DoTransactions(Entry name, Entry iban, Entry sum) //internal static void DoTransactions(Entry name, Entry iban, Entry sum)
{ //{
Debug.WriteLine(name.Text); // Debug.WriteLine(name.Text);
Debug.WriteLine(iban.Text); // Debug.WriteLine(iban.Text);
Debug.WriteLine(sum.Text); // Debug.WriteLine(sum.Text);
Debug.WriteLine("Transaction successed !"); // Debug.WriteLine("Transaction successed !");
//}
}
//public bool DoRequest(string name, string IBAN, float sum) //public bool DoRequest(string name, string IBAN, float sum)
//{ //{

@ -13,7 +13,7 @@ namespace Banquale.Model
} }
[DataMember] [DataMember]
public int Type public bool Type
{ {
get => type; get => type;
set set
@ -26,7 +26,7 @@ namespace Banquale.Model
} }
[DataMember] [DataMember]
private int type; private bool type;
[DataMember] [DataMember]
public Double Sum public Double Sum
@ -88,12 +88,12 @@ namespace Banquale.Model
[DataMember] [DataMember]
private DateTime date; private DateTime date;
public Transactions(int type, Double sum, Account involvedAccounts, string category, DateTime date) public Transactions(bool type, Double sum, Account involvedAccounts/*, string category*/, DateTime date)
{ {
Type = type; Type = type;
Sum = sum; Sum = sum;
InvolvedAccounts = involvedAccounts; InvolvedAccounts = involvedAccounts;
Category = category; //Category = category;
Date = date; Date = date;
} }

@ -21,15 +21,15 @@ namespace Banquale.Stub
Customer Customer3 = new Customer("Michel", "Boudout", "MonMdP"); Customer Customer3 = new Customer("Michel", "Boudout", "MonMdP");
Account Account1 = new Account(999, "Tatouille", "FR76 9161 9581 6296 8415 2361 004"); Account Account1 = new Account(999, "Tatouille", "FR76 9161 9581 6296 8415 2361 004");
Account Account2 = new Account(9510, "Despoints", "FR76 4785 8569 6914 4152 5263 003"); Account Account2 = new Account(9510, "Despoints", "FR7647858569691441525263003");
Account Account3 = new Account(3519, "Perotte", "FR76 6352 2541 4169 6958 5847 002"); Account Account3 = new Account(3519, "Perotte", "FR76 6352 2541 4169 6958 5847 002");
Transactions Transactions1 = new Transactions(0, 55, Account1, "Test", new DateTime(2023, 6, 21, 15, 29, 20)); Transactions Transactions1 = new Transactions(true, 55, Account1, new DateTime(2023, 6, 21, 15, 29, 20));
Transactions Transactions12 = new Transactions(0, 105, Account1, "Test", new DateTime(2023, 8, 17, 18, 54, 35)); Transactions Transactions12 = new Transactions(true, 105, Account1, new DateTime(2023, 8, 17, 18, 54, 35));
Transactions Transactions13 = new Transactions(0, 187, Account1, "Test", new DateTime(2023, 5, 3, 8, 39, 49)); Transactions Transactions13 = new Transactions(true, 187, Account1, new DateTime(2023, 5, 3, 8, 39, 49));
Transactions Transactions2 = new Transactions(1, 54.99, Account2, "Test", new DateTime(2022, 8, 15)); Transactions Transactions2 = new Transactions(false, 54.99, Account2, new DateTime(2022, 8, 15));
Transactions Transactions3 = new Transactions(0, 1000, Account3, "Test", new DateTime(2020, 9, 1, 20, 00, 00)); Transactions Transactions3 = new Transactions(true, 1000, Account3, new DateTime(2020, 9, 1, 20, 00, 00));
Debug.WriteLine(Customer1.Name, Customer1.Password); Debug.WriteLine(Customer1.Name, Customer1.Password);
List<Customer> CustomersList = new List<Customer>(); List<Customer> CustomersList = new List<Customer>();

@ -6,6 +6,10 @@
x:Class="Banquale.Views.BalancePage" x:Class="Banquale.Views.BalancePage"
Title="BalancePage" Title="BalancePage"
Shell.NavBarIsVisible="False"> Shell.NavBarIsVisible="False">
<!--<ContentPage.BindingContext>
<model:Manager.SelectedAccount/>
</ContentPage.BindingContext>-->
<Grid RowDefinitions="auto, auto, *"> <Grid RowDefinitions="auto, auto, *">

@ -26,7 +26,7 @@
Padding="3"> Padding="3">
<Entry <Entry
Text="FR " Text="FR"
Placeholder="IBAN" Placeholder="IBAN"
HorizontalOptions="Center" HorizontalOptions="Center"
WidthRequest="280" WidthRequest="280"

@ -1,4 +1,6 @@
using Banquale.Model; using Banquale.Model;
using System.Linq;
namespace Banquale.Views.Transfer; namespace Banquale.Views.Transfer;
public partial class TransferPage : ContentPage public partial class TransferPage : ContentPage
@ -11,8 +13,25 @@ public partial class TransferPage : ContentPage
public async void Send_Clicked(Object sender, EventArgs e) public async void Send_Clicked(Object sender, EventArgs e)
{ {
Account.DoTransactions(Name, IBAN, Sum); if (string.IsNullOrEmpty(Name.Text) || string.IsNullOrEmpty(IBAN.Text) || string.IsNullOrEmpty(Sum.Text))
await Shell.Current.GoToAsync("//balance"); {
await DisplayAlert("Erreur", "Tout les champs doivent être complétés", "OK");
return;
}
foreach (var cust in Mgr.CustomersList)
{
foreach (var acc in cust.AccountsList)
{
if(acc.Name == Name.Text && acc.IBAN == IBAN.Text)
{
acc.DoTransactions(acc, Convert.ToDouble(Sum.Text), true); // Type true car c'est un virement
//await Shell.Current.GoToAsync("//balance");
await Shell.Current.Navigation.PopAsync();
return;
}
}
}
await DisplayAlert("Erreur", "Le compte n'existe pas", "OK");
} }
} }
Loading…
Cancel
Save