add some test and documentation of the code

pull/50/head
Antoine PEREDERII 2 years ago
parent 947597cdc8
commit 0c77166f85

@ -53,7 +53,6 @@
<None Remove="Stub\" /> <None Remove="Stub\" />
<None Remove="DataContractPersistance\" /> <None Remove="DataContractPersistance\" />
<None Remove="Views\Category\" /> <None Remove="Views\Category\" />
<None Remove="Test\" />
<None Remove="Resources\Images\Sources\accounts.svg" /> <None Remove="Resources\Images\Sources\accounts.svg" />
<None Remove="Resources\Images\Sources\back_arrow_icon.svg" /> <None Remove="Resources\Images\Sources\back_arrow_icon.svg" />
<None Remove="Resources\Images\Sources\dotnet_bot.svg" /> <None Remove="Resources\Images\Sources\dotnet_bot.svg" />
@ -73,7 +72,6 @@
<Folder Include="Stub\" /> <Folder Include="Stub\" />
<Folder Include="DataContractPersistance\" /> <Folder Include="DataContractPersistance\" />
<Folder Include="Views\Category\" /> <Folder Include="Views\Category\" />
<Folder Include="Test\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="Resources\Images\ImagesDictionary.xaml" /> <None Include="Resources\Images\ImagesDictionary.xaml" />

@ -1,14 +0,0 @@
using System;
using Model;
namespace Banquale.Test
{
public class AccountTest
{
public AccountTest()
{
Account account = new Account(2000000, "Men", "How are you ?");
}
}
}

@ -37,14 +37,14 @@ public partial class BalancePage : ContentPage
return; return;
} }
Transactions transactions = Mgr.SelectedAccount.TransactionsList.FirstOrDefault(u => u.Id == TransactionId); Transaction transaction = Mgr.SelectedAccount.TransactionsList.FirstOrDefault(u => u.Id == TransactionId);
if (transactions == null) if (transaction == null)
{ {
await DisplayAlert("Erreur", "La transaction n'éxiste pas !", "OK"); await DisplayAlert("Erreur", "La transaction n'éxiste pas !", "OK");
return; return;
} }
Mgr.SelectedTransaction = transactions; Mgr.SelectedTransaction = transaction;
await Navigation.PushModalAsync(new TransactionsPage()); await Navigation.PushModalAsync(new TransactionsPage());

@ -1,24 +1,40 @@
using System; /// \file
/// \brief Définition de la classe Account.
/// \author Votre nom
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Runtime.Serialization; using System.Runtime.Serialization;
using System;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Model namespace Model
{ {
/// <summary>
/// Représente un compte bancaire.
/// </summary>
[DataContract] [DataContract]
public class Account : INotifyPropertyChanged, IEquatable<Account> public class Account : INotifyPropertyChanged, IEquatable<Account>
{ {
/// <summary>
/// Événement déclenché lorsqu'une propriété est modifiée.
/// </summary>
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
/// <summary>
/// Déclenche l'événement PropertyChanged pour une propriété donnée.
/// </summary>
/// <param name="propertyName">Nom de la propriété modifiée.</param>
void OnPropertyChanged(string propertyName) void OnPropertyChanged(string propertyName)
{ {
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
} }
/// <summary>
/// Obtient ou définit le solde du compte.
/// </summary>
[DataMember] [DataMember]
public Double Balance public Double Balance
{ {
@ -34,7 +50,9 @@ namespace Model
[DataMember] [DataMember]
private Double balance; private Double balance;
/// <summary>
/// Obtient ou définit le nom du titulaire du compte.
/// </summary>
[DataMember] [DataMember]
public string Name public string Name
{ {
@ -50,7 +68,9 @@ namespace Model
[DataMember] [DataMember]
private string name; private string name;
/// <summary>
/// Obtient ou définit le numéro IBAN du compte.
/// </summary>
[DataMember] [DataMember]
public string IBAN public string IBAN
{ {
@ -66,6 +86,9 @@ namespace Model
[DataMember] [DataMember]
private string iban; private string iban;
/// <summary>
/// Obtient une version masquée du numéro IBAN du compte.
/// </summary>
[DataMember] [DataMember]
public string IBANHide public string IBANHide
{ {
@ -81,26 +104,41 @@ namespace Model
[DataMember] [DataMember]
private string ibanHide; private string ibanHide;
/// <summary>
/// Obtient ou définit la liste des transactions effectuées sur le compte.
/// </summary>
[DataMember] [DataMember]
public List<Transactions> TransactionsList { get; set; } = new List<Transactions>(); public List<Transaction> TransactionsList { get; set; } = new List<Transaction>();
/// <summary>
/// Effectue une transaction entre le compte courant et un compte tiers.
/// </summary>
/// <param name="involvedAccount">Compte tiers impliqué dans la transaction.</param>
/// <param name="sum">Somme de la transaction.</param>
/// <param name="type">Type de transaction (débit ou crédit).</param>
/// <param name="nb">Numéro de la transaction.</param>
public void DoTransactions(Account involvedAccount, Double sum, bool type, int nb) 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 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); TransactionsList.Add(transaction);
Balance = Balance - sum; Balance = Balance - sum;
involvedAccount.DoTransactions(this, sum, !type, nb + 1); involvedAccount.DoTransactions(this, sum, !type, nb + 1);
} }
else // Sinon, c'est un crédit, on a juste à l'ajouter à notre liste de transactions 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; Balance = Balance + sum;
} }
} }
/// <summary>
/// Constructeur de la classe Account.
/// </summary>
/// <param name="balance">Solde initial du compte.</param>
/// <param name="name">Nom du titulaire du compte.</param>
/// <param name="iban">Numéro IBAN du compte.</param>
public Account(Double balance, string name, string iban) public Account(Double balance, string name, string iban)
{ {
Balance = balance; Balance = balance;
@ -109,40 +147,25 @@ namespace Model
IBANHide = IBANToString(); IBANHide = IBANToString();
} }
//public static void DoTransactions(string name, string iban, string sum) /// <summary>
//{ /// Demande d'aide pour un compte.
// Debug.WriteLine(name); /// </summary>
// Debug.WriteLine(iban); /// <param name="subject">Sujet de la demande d'aide.</param>
// Debug.WriteLine(sum); /// <param name="description">Description de la demande d'aide.</param>
// Debug.WriteLine("Transaction successed !"); /// <returns>Un message d'aide.</returns>
//public bool DoRequest(string name, string IBAN, float sum)
//{
// List<Transactions> transactions.add(sum);
// if ()
// return true;
//}
//public void AskForHelp(string type, string type2, string message)
//{
// Console.WriteLine("Help button pressed !");
//}
public static Message AskForHelp(string subject, string description) public static Message AskForHelp(string subject, string description)
{ {
Debug.WriteLine(subject); Debug.WriteLine(subject);
Debug.WriteLine(description); Debug.WriteLine(description);
Debug.WriteLine("Help button pressed !"); Debug.WriteLine("Help button pressed !");
//throw new NotImplementedException();
Message message = new Message(subject, description); Message message = new Message(subject, description);
return message; return message;
} }
public static void DoRequest(string name, string iBAN, string sum) /// <summary>
{ /// Convertit le numéro IBAN en une version masquée.
throw new NotImplementedException(); /// </summary>
} /// <returns>Le numéro IBAN masqué.</returns>
public string IBANToString() public string IBANToString()
{ {
char[] res = IBAN.ToCharArray(); char[] res = IBAN.ToCharArray();
@ -155,12 +178,21 @@ namespace Model
return new string(res); return new string(res);
} }
/// <summary>
/// Vérifie si deux comptes sont égaux en comparant leur numéro IBAN.
/// </summary>
/// <param name="other">Compte à comparer.</param>
/// <returns>True si les comptes sont égaux, False sinon.</returns>
public bool Equals(Account other) public bool Equals(Account other)
{ {
if (other == null) return false; if (other == null) return false;
else return other.IBAN.Equals(IBAN); else return other.IBAN.Equals(IBAN);
} }
/// <summary>
/// Obtient le code de hachage du compte basé sur le numéro IBAN.
/// </summary>
/// <returns>Le code de hachage.</returns>
public override int GetHashCode() public override int GetHashCode()
{ {
return IBAN.GetHashCode(); return IBAN.GetHashCode();

@ -1,12 +0,0 @@
using System;
namespace Model
{
public class Category
{
public Category()
{
}
}
}

@ -1,17 +1,32 @@
using System; /// \file
/// \brief Définition de la classe Consultant.
/// \author Votre nom
using System;
using System.Runtime.Serialization; using System.Runtime.Serialization;
namespace Model namespace Model
{ {
/// <summary>
/// Représente un consultant.
/// </summary>
[DataContract] [DataContract]
public class Consultant : Person public class Consultant : Person
{ {
/// <summary>
/// Liste des messages du consultant.
/// </summary>
[DataMember] [DataMember]
public List<Message> MessagesList = new List<Message>(); public List<Message> MessagesList = new List<Message>();
/// <summary>
/// Constructeur de la classe Consultant.
/// </summary>
/// <param name="name">Nom du consultant.</param>
/// <param name="firstName">Prénom du consultant.</param>
/// <param name="password">Mot de passe du consultant.</param>
public Consultant(string name, string firstName, string password) : base(name, firstName, password) public Consultant(string name, string firstName, string password) : base(name, firstName, password)
{ {
} }
} }
} }

@ -1,28 +1,34 @@
using System; /// \file
/// \brief Définition de la classe Customer.
/// \author Votre nom
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization; using System.Runtime.Serialization;
using System;
using System.Threading.Tasks;
namespace Model namespace Model
{ {
/// <summary>
/// Représente un client.
/// </summary>
[DataContract] [DataContract]
public class Customer : Person public class Customer : Person
{ {
/// <summary>
/// Liste des comptes du client.
/// </summary>
[DataMember] [DataMember]
public List<Account> AccountsList { get; private set; } = new List<Account>(); public List<Account> AccountsList { get; private set; } = new List<Account>();
//private uint NbAccounts { get; set; } = AccountsList.Count; /// <summary>
/// Constructeur de la classe Customer.
/// </summary>
/// <param name="name">Nom du client.</param>
/// <param name="firstName">Prénom du client.</param>
/// <param name="password">Mot de passe du client.</param>
public Customer(string name, string firstName, string password) : base(name, firstName, password) public Customer(string name, string firstName, string password) : base(name, firstName, password)
{ } { }
} }
} }

@ -1,15 +1,28 @@
using System; /// \file
using System.Collections.Generic; /// \brief Définition de l'interface IPersistenceManager.
using System.Linq; /// \author Votre nom
using System; using System;
using System.Threading.Tasks; using System.Collections.Generic;
namespace Model namespace Model
{ {
/// <summary>
/// Interface pour la gestion de la persistance des données.
/// </summary>
public interface IPersistenceManager public interface IPersistenceManager
{ {
public (List<Customer>, Consultant) DataLoad(); /// <summary>
/// Charge les données depuis une source de persistance.
/// </summary>
/// <returns>Un tuple contenant la liste des clients et le consultant.</returns>
(List<Customer>, Consultant) DataLoad();
/// <summary>
/// Enregistre les données dans une source de persistance.
/// </summary>
/// <param name="cu">La liste des clients à enregistrer.</param>
/// <param name="co">Le consultant à enregistrer.</param>
void DataSave(List<Customer> cu, Consultant co); void DataSave(List<Customer> cu, Consultant co);
} }
} }

@ -1,10 +1,18 @@
using System; /// \file
/// \brief Définition de la classe Manager.
/// \author Votre nom
using System;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Runtime.Serialization; using System.Runtime.Serialization;
namespace Model namespace Model
{ {
/// <summary>
/// Classe représentant le gestionnaire du système.
/// </summary>
[DataContract] [DataContract]
public class Manager : INotifyPropertyChanged public class Manager : INotifyPropertyChanged
{ {
@ -13,14 +21,26 @@ namespace Model
void OnPropertyChanged([CallerMemberName] string propertyName = null) void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
/// <summary>
/// Liste des clients gérés par le gestionnaire.
/// </summary>
[DataMember] [DataMember]
public List<Customer> CustomersList { get; private set; } // devient un set public List<Customer> CustomersList { get; private set; } // devient un set
/// <summary>
/// Consultant assigné au gestionnaire.
/// </summary>
[DataMember] [DataMember]
public Consultant Consultant { get; private set; } // 1 SEUL consultant public Consultant Consultant { get; private set; } // 1 SEUL consultant
/// <summary>
/// Indique si le gestionnaire est un consultant.
/// </summary>
public bool IsConsultant { get; set; } = false; public bool IsConsultant { get; set; } = false;
/// <summary>
/// Client sélectionné par le gestionnaire.
/// </summary>
public Customer SelectedCustomer public Customer SelectedCustomer
{ {
get => selectedCustomer; get => selectedCustomer;
@ -35,6 +55,9 @@ namespace Model
private Customer selectedCustomer; private Customer selectedCustomer;
/// <summary>
/// Compte sélectionné par le gestionnaire.
/// </summary>
public Account SelectedAccount public Account SelectedAccount
{ {
get => selectedAccount; get => selectedAccount;
@ -49,7 +72,10 @@ namespace Model
private Account selectedAccount; private Account selectedAccount;
public Transactions SelectedTransaction /// <summary>
/// Transaction sélectionnée par le gestionnaire.
/// </summary>
public Transaction SelectedTransaction
{ {
get => selectedTransaction; get => selectedTransaction;
set set
@ -61,52 +87,70 @@ namespace Model
} }
} }
private Transactions selectedTransaction; private Transaction selectedTransaction;
/// <summary>
/// Gestionnaire de persistance utilisé par le gestionnaire.
/// </summary>
public IPersistenceManager Persistence { get; set; } public IPersistenceManager Persistence { get; set; }
/// <summary>
/// Constructeur du gestionnaire avec un gestionnaire de persistance spécifié.
/// </summary>
/// <param name="persistence">Gestionnaire de persistance.</param>
public Manager(IPersistenceManager persistence) public Manager(IPersistenceManager persistence)
{ {
CustomersList = new List<Customer>(); CustomersList = new List<Customer>();
Persistence = persistence; Persistence = persistence;
} }
/// <summary>
/// Constructeur du gestionnaire sans gestionnaire de persistance.
/// </summary>
public Manager() public Manager()
{ {
CustomersList = new List<Customer>(); CustomersList = new List<Customer>();
} }
public bool AddCustomer(Customer MyCustomer) /// <summary>
/// Ajoute un client à la liste des clients gérés par le gestionnaire.
/// </summary>
/// <param name="myCustomer">Client à ajouter.</param>
/// <returns>True si l'ajout est réussi, sinon False.</returns>
public bool AddCustomer(Customer myCustomer)
{ {
CustomersList.Add(MyCustomer); CustomersList.Add(myCustomer);
return true; return true;
} }
public Customer GetCustomer(int place) { /// <summary>
/// Récupère le client à la position spécifiée dans la liste des clients.
/// </summary>
/// <param name="place">Position du client.</param>
/// <returns>Le client à la position spécifiée.</returns>
public Customer GetCustomer(int place)
{
return CustomersList[place]; return CustomersList[place];
} }
/// <summary>
/// Enregistre les données dans la source de persistance.
/// </summary>
public void DataSave() public void DataSave()
{ {
Persistence.DataSave(CustomersList, Consultant); Persistence.DataSave(CustomersList, Consultant);
} }
/// <summary>
/// Charge les données depuis la source de persistance.
/// </summary>
public void DataLoad() public void DataLoad()
{ {
var data = Persistence.DataLoad(); var data = Persistence.DataLoad();
CustomersList.AddRange(data.Item1); CustomersList.AddRange(data.Item1);
/*foreach (var j in data.Item1)
{
CustomersList.Add(j);
}*/
Consultant = data.Item2; Consultant = data.Item2;
} }
} }
} }

@ -1,23 +1,39 @@
using System; /// \file
/// \brief Définition de la classe Message.
/// \author Votre nom
using System;
using System.Runtime.Serialization; using System.Runtime.Serialization;
namespace Model namespace Model
{ {
/// <summary>
/// Classe représentant un message.
/// </summary>
[DataContract] [DataContract]
public class Message public class Message
{ {
/// <summary>
/// Sujet du message.
/// </summary>
[DataMember] [DataMember]
public string Subject { get; private set; } public string Subject { get; private set; }
/// <summary>
/// Description du message.
/// </summary>
[DataMember] [DataMember]
public string Description { get; private set; } public string Description { get; private set; }
/// <summary>
/// Constructeur de la classe Message.
/// </summary>
/// <param name="subject">Sujet du message.</param>
/// <param name="description">Description du message.</param>
public Message(string subject, string description) public Message(string subject, string description)
{ {
Subject = subject; Subject = subject;
Description = description; Description = description;
} }
} }
} }

@ -6,10 +6,4 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<None Remove="Model\" />
</ItemGroup>
<ItemGroup>
<Folder Include="Model\" />
</ItemGroup>
</Project> </Project>

@ -1,27 +1,55 @@
using System; /// \file
/// \brief Définition de la classe Person.
/// \author Votre nom
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization; using System.Runtime.Serialization;
using System;
using System.Threading.Tasks;
namespace Model namespace Model
{ {
/// <summary>
/// Classe représentant une personne.
/// </summary>
[DataContract] [DataContract]
public class Person public class Person
{ {
/// <summary>
/// Nom de la personne.
/// </summary>
[DataMember] [DataMember]
public string Name { get; private set; } public string Name { get; private set; }
/// <summary>
/// Prénom de la personne.
/// </summary>
[DataMember] [DataMember]
public string FirstName { get; private set; } public string FirstName { get; private set; }
/// <summary>
/// Identifiant de la personne.
/// </summary>
[DataMember] [DataMember]
public uint Id { get; private set; } public uint Id { get; private set; }
/// <summary>
/// Compteur d'identifiants.
/// </summary>
public static uint id { get; set; } = 0; public static uint id { get; set; } = 0;
/// <summary>
/// Mot de passe de la personne.
/// </summary>
[DataMember] [DataMember]
public string Password { get; private set; } public string Password { get; private set; }
/// <summary>
/// Constructeur de la classe Person.
/// </summary>
/// <param name="name">Nom de la personne.</param>
/// <param name="firstName">Prénom de la personne.</param>
/// <param name="password">Mot de passe de la personne.</param>
public Person(string name, string firstName, string password) public Person(string name, string firstName, string password)
{ {
Name = name; Name = name;
@ -31,5 +59,4 @@ namespace Model
id++; id++;
} }
} }
} }

@ -3,17 +3,31 @@ using System.Runtime.Serialization;
namespace Model namespace Model
{ {
/// <summary>
/// Represents a transaction.
/// </summary>
[DataContract(IsReference = true)] [DataContract(IsReference = true)]
public class Transactions : INotifyPropertyChanged public class Transaction : INotifyPropertyChanged
{ {
/// <summary>
/// Occurs when a property value changes.
/// </summary>
public event PropertyChangedEventHandler PropertyChanged;
void OnPropertyChanged(string propertyName) void OnPropertyChanged(string propertyName)
{ {
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
} }
/// <summary>
/// Gets the unique identifier of the transaction.
/// </summary>
[DataMember] [DataMember]
public int Id { get; private set; } public int Id { get; private set; }
/// <summary>
/// Gets or sets the type of the transaction (debit or credit).
/// </summary>
[DataMember] [DataMember]
public bool Type public bool Type
{ {
@ -27,11 +41,13 @@ namespace Model
} }
} }
[DataMember] [DataMember]
private bool type; private bool type;
/// <summary>
/// Gets or sets the sum of the transaction.
/// </summary>
[DataMember] [DataMember]
public Double Sum public double Sum
{ {
get => sum; get => sum;
set set
@ -43,8 +59,11 @@ namespace Model
} }
} }
[DataMember] [DataMember]
private Double sum; private double sum;
/// <summary>
/// Gets or sets the account(s) involved in the transaction.
/// </summary>
[DataMember] [DataMember]
public Account InvolvedAccounts public Account InvolvedAccounts
{ {
@ -60,6 +79,9 @@ namespace Model
[DataMember] [DataMember]
private Account involvedAccounts; private Account involvedAccounts;
/// <summary>
/// Gets or sets the category of the transaction.
/// </summary>
[DataMember] [DataMember]
public string Category public string Category
{ {
@ -75,6 +97,9 @@ namespace Model
[DataMember] [DataMember]
private string category; private string category;
/// <summary>
/// Gets or sets the date of the transaction.
/// </summary>
[DataMember] [DataMember]
public DateTime Date public DateTime Date
{ {
@ -90,17 +115,21 @@ namespace Model
[DataMember] [DataMember]
private DateTime date; private DateTime date;
public Transactions(bool type, Double sum, Account involvedAccounts/*, string category*/, int id, DateTime date) /// <summary>
/// Initializes a new instance of the <see cref="Transaction"/> class.
/// </summary>
/// <param name="type">The type of the transaction (debit or credit).</param>
/// <param name="sum">The sum of the transaction.</param>
/// <param name="involvedAccounts">The account(s) involved in the transaction.</param>
/// <param name="id">The unique identifier of the transaction.</param>
/// <param name="date">The date of the transaction.</param>
public Transaction(bool type, double sum, Account involvedAccounts, int id, DateTime date)
{ {
Type = type; Type = type;
Sum = sum; Sum = sum;
Id = id; Id = id;
InvolvedAccounts = involvedAccounts; InvolvedAccounts = involvedAccounts;
//Category = category;
Date = date; Date = date;
} }
public event PropertyChangedEventHandler PropertyChanged;
} }
} }

@ -0,0 +1,70 @@
/// \file
/// \brief Fichier de test pour la classe Account.
/// \author Votre nom
using Model;
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.Serialization;
namespace UnitTest
{
/// <summary>
/// Classe de test pour la classe Account.
/// </summary>
class AccountTest
{
/// <summary>
/// Méthode principale du test.
/// </summary>
/// <param name="args">Arguments de ligne de commande.</param>
static void Main(string[] args)
{
// Création de deux comptes
Account account1 = new Account(1000, "John Doe", "FR123456789");
Account account2 = new Account(500, "Jane Smith", "FR987654321");
// Affichage des informations des comptes
Console.WriteLine("Compte 1:");
Console.WriteLine($"Nom: {account1.Name}");
Console.WriteLine($"IBAN: {account1.IBANHide}");
Console.WriteLine($"Solde: {account1.Balance}");
Console.WriteLine("\nCompte 2:");
Console.WriteLine($"Nom: {account2.Name}");
Console.WriteLine($"IBAN: {account2.IBANHide}");
Console.WriteLine($"Solde: {account2.Balance}");
// Effectuer une transaction entre les comptes
double amount = 200;
Console.WriteLine($"\nEffectuer une transaction de {amount} du compte 1 vers le compte 2...");
account1.DoTransactions(account2, amount, true, 1);
// Affichage des informations des comptes après la transaction
Console.WriteLine("\nAprès la transaction:");
Console.WriteLine("Compte 1:");
Console.WriteLine($"Nom: {account1.Name}");
Console.WriteLine($"IBAN: {account1.IBANHide}");
Console.WriteLine($"Solde: {account1.Balance}");
Console.WriteLine("\nCompte 2:");
Console.WriteLine($"Nom: {account2.Name}");
Console.WriteLine($"IBAN: {account2.IBANHide}");
Console.WriteLine($"Solde: {account2.Balance}");
// Demander de l'aide
string helpSubject = "Besoin d'aide";
string helpDescription = "Je rencontre un problème avec mon compte.";
Message helpMessage = Account.AskForHelp(helpSubject, helpDescription);
Console.WriteLine($"\nDemande d'aide envoyée : {helpMessage}");
// Comparaison de deux comptes
Console.WriteLine("\nComparaison des comptes...");
bool areEqual = account1.Equals(account2);
Console.WriteLine($"Les comptes sont-ils égaux ? {areEqual}");
Console.ReadLine();
}
}
}

@ -0,0 +1,11 @@
using System;
namespace UnitTest
{
public class ConsultantTest
{
public ConsultantTest()
{
}
}
}

@ -1,5 +1,5 @@
using System; using System;
namespace Banquale.Test namespace UnitTest
{ {
public class CustomerTest public class CustomerTest
{ {

@ -1,5 +1,5 @@
using System; using System;
namespace Banquale.Test namespace UnitTest
{ {
public class ManagerTest public class ManagerTest
{ {

@ -0,0 +1,28 @@
using Model;
using System;
namespace UnitTest
{
/// <summary>
/// Classe de test pour la classe Message.
/// </summary>
public class MessageTest
{
/// <summary>
/// Point d'entrée du programme de test.
/// </summary>
/// <param name="args">Arguments de ligne de commande.</param>
static void Main(string[] args)
{
// Création d'un message
Message message = new Message("Important", "Ceci est un message important.");
// Affichage des informations du message
Console.WriteLine("Message:");
Console.WriteLine($"Sujet: {message.Subject}");
Console.WriteLine($"Description: {message.Description}");
Console.ReadLine();
}
}
}

@ -0,0 +1,11 @@
using System;
namespace UnitTest
{
public class PersonTest
{
public PersonTest()
{
}
}
}

@ -0,0 +1,38 @@
/// \file
/// \brief Fichier de test pour la classe Transaction.
/// \author Votre nom
using Model;
using System;
namespace UnitTest
{
/// <summary>
/// Classe de test pour la classe Transaction.
/// </summary>
class TransactionTest
{
/// <summary>
/// Méthode principale du test.
/// </summary>
/// <param name="args">Arguments de ligne de commande.</param>
static void Main(string[] args)
{
// Création d'un compte
Account account = new Account(1000, "John Doe", "FR123456789");
// Création d'une transaction
Transaction transaction = new Transaction(true, 200, account, 1, DateTime.Now);
// Affichage des informations de la transaction
Console.WriteLine("Transaction:");
Console.WriteLine($"Type: {(transaction.Type ? "Débit" : "Crédit")}");
Console.WriteLine($"Somme: {transaction.Sum}");
Console.WriteLine($"Compte impliqué: {transaction.InvolvedAccounts.Name}");
Console.WriteLine($"Catégorie: {transaction.Category}");
Console.WriteLine($"Date: {transaction.Date}");
Console.ReadLine();
}
}
}

@ -16,10 +16,6 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
</PackageReference> </PackageReference>
<PackageReference Include="coverlet.collector" Version="3.2.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

Loading…
Cancel
Save