fix issue with pull request hashSet

pull/69/head
Antoine PEREDERII 2 years ago
commit 943fb31139

@ -18,7 +18,7 @@ namespace Banquale.DataContractPersistance
public string FileName { get; set; } = "DataSave.json"; public string FileName { get; set; } = "DataSave.json";
public (List<Customer>, Consultant) DataLoad() public (HashSet<Customer>, Consultant) DataLoad()
{ {
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(DataToPersist)); DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(DataToPersist));
@ -33,7 +33,7 @@ namespace Banquale.DataContractPersistance
} }
public void DataSave(List<Customer> cu, Consultant co) public void DataSave(HashSet<Customer> cu, Consultant co)
{ {
DataToPersist data = new DataToPersist(); DataToPersist data = new DataToPersist();

@ -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<Customer>, Consultant) DataLoad()
{
throw new NotImplementedException();
}
public void DataSave(HashSet<Customer> 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);
}
}
}
}

@ -15,7 +15,7 @@ namespace Banquale.DataContractPersistance
public string FilePath { get; set; } = FileSystem.Current.AppDataDirectory; public string FilePath { get; set; } = FileSystem.Current.AppDataDirectory;
public string FileName { get; set; } = "DataSave.xml"; public string FileName { get; set; } = "DataSave.xml";
public (List<Customer>, Consultant) DataLoad() public (HashSet<Customer>, Consultant) DataLoad()
{ {
var serializer = new DataContractSerializer(typeof(DataToPersist)); var serializer = new DataContractSerializer(typeof(DataToPersist));
@ -49,7 +49,7 @@ namespace Banquale.DataContractPersistance
return (data.customer, data.consultant); return (data.customer, data.consultant);
} }
public void DataSave(List<Customer> cu, Consultant co) public void DataSave(HashSet<Customer> cu, Consultant co)
{ {
var serializer = new DataContractSerializer(typeof(DataToPersist), new DataContractSerializerSettings() { PreserveObjectReferences = true }); 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 // La deuxième partie sert à faire des références, cela sert à ne pas duppliquer l'écriture de certains attributs

@ -5,7 +5,7 @@ namespace Banquale.DataContractPersistance
{ {
public class DataToPersist public class DataToPersist
{ {
public List<Customer> customer { get; set; } = new List<Customer>(); public HashSet<Customer> customer { get; set; } = new HashSet<Customer>();
public Consultant consultant { get; set; } public Consultant consultant { get; set; }
} }
} }

@ -8,7 +8,7 @@ namespace Banquale.Stub
public class Stub : IPersistenceManager public class Stub : IPersistenceManager
{ {
public (List<Customer>, Consultant) DataLoad() public (HashSet<Customer>, Consultant) DataLoad()
{ {
Consultant Consultant = new Consultant("Consultant", "Consultant", "Consultant"); // toujours creer en premier le consultant Consultant Consultant = new Consultant("Consultant", "Consultant", "Consultant"); // toujours creer en premier le consultant
@ -25,7 +25,6 @@ namespace Banquale.Stub
Account Account2 = new Account(9510, "Despoints", "FR7647858569691441525263003"); Account Account2 = new Account(9510, "Despoints", "FR7647858569691441525263003");
Account Account3 = new Account(3519, "Perotte", "FR7663522541416969585847002"); Account Account3 = new Account(3519, "Perotte", "FR7663522541416969585847002");
Transaction Transaction1 = new Transaction(true, 55, Account2, 1, new DateTime(2023, 6, 21, 15, 29, 20)); 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 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 Transaction13 = new Transaction(true, 187, Account3, 3, new DateTime(2023, 5, 3, 8, 39, 49));
@ -33,8 +32,9 @@ namespace Banquale.Stub
Transaction Transaction3 = new Transaction(true, 1000, Account3, 5, new DateTime(2020, 9, 1, 20, 00, 00)); Transaction Transaction3 = new Transaction(true, 1000, Account3, 5, 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>();
Debug.WriteLine(Customer1.Name, Customer1.Password);
HashSet<Customer> CustomersList = new HashSet<Customer>();
List<Transaction> TransactionsList= new List<Transaction>(); List<Transaction> TransactionsList= new List<Transaction>();
List<Account> AccountsList = new List<Account>(); List<Account> AccountsList = new List<Account>();
@ -64,7 +64,7 @@ namespace Banquale.Stub
return (CustomersList, Consultant); return (CustomersList, Consultant);
} }
public void DataSave(List<Customer> c, Consultant consultant) public void DataSave(HashSet<Customer> c, Consultant consultant)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

@ -109,13 +109,19 @@ namespace Model
/// Obtient ou définit la liste des transactions effectuées sur le compte. /// Obtient ou définit la liste des transactions effectuées sur le compte.
/// </summary> /// </summary>
[DataMember(Order = 5)] [DataMember(Order = 5)]
<<<<<<< HEAD
public ObservableCollection<Transaction> TransactionsList public ObservableCollection<Transaction> TransactionsList
{ {
=======
public List<Transaction> TransactionsList
{
>>>>>>> b9413793a448a7f6b81d48c3a21bea9358db9927
get => transactionsList; get => transactionsList;
set set
{ {
transactionsList = value; transactionsList = value;
OnPropertyChanged(nameof(TransactionsList)); OnPropertyChanged(nameof(TransactionsList));
<<<<<<< HEAD
} }
} }
@ -128,6 +134,13 @@ namespace Model
/// <param name="sum">Somme de 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="type">Type de transaction (débit ou crédit).</param>
/// <param name="nb">Numéro de la transaction.</param> /// <param name="nb">Numéro de la transaction.</param>
=======
}
}
private List<Transaction> transactionsList;
>>>>>>> b9413793a448a7f6b81d48c3a21bea9358db9927
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
@ -140,7 +153,11 @@ namespace Model
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 Transaction(type, sum, involvedAccount, nb, DateTime.Now)); TransactionsList.Add(new Transaction(type, sum, involvedAccount, nb, DateTime.Now));
<<<<<<< HEAD
Balance = Balance + sum; Balance = Balance + sum;
=======
Balance = Balance+sum;
>>>>>>> b9413793a448a7f6b81d48c3a21bea9358db9927
} }
} }
@ -155,6 +172,7 @@ namespace Model
Balance = balance; Balance = balance;
Name = name; Name = name;
IBAN = iban; IBAN = iban;
TransactionsList = new List<Transaction>();
IBANHide = IBANToString(); IBANHide = IBANToString();
TransactionsList = new ObservableCollection<Transaction>(); TransactionsList = new ObservableCollection<Transaction>();
} }

@ -15,14 +15,14 @@ namespace Model
/// <summary> /// <summary>
/// Charge les données depuis une source de persistance. /// Charge les données depuis une source de persistance.
/// </summary> /// </summary>
/// <returns>Un tuple contenant la liste des clients et le consultant.</returns> /// <returns>Un tuple contenant lle hashSet des clients et le consultant.</returns>
(List<Customer>, Consultant) DataLoad(); public (HashSet<Customer>, Consultant) DataLoad();
/// <summary> /// <summary>
/// Enregistre les données dans une source de persistance. /// Enregistre les données dans une source de persistance.
/// </summary> /// </summary>
/// <param name="cu">La liste des clients à enregistrer.</param> /// <param name="cu">La liste des clients à enregistrer.</param>
/// <param name="co">Le consultant à enregistrer.</param> /// <param name="co">Le consultant à enregistrer.</param>
void DataSave(List<Customer> cu, Consultant co); void DataSave(HashSet<Customer> cu, Consultant co);
} }
} }

@ -26,7 +26,7 @@ namespace Model
/// Liste des clients gérés par le gestionnaire. /// Liste des clients gérés par le gestionnaire.
/// </summary> /// </summary>
[DataMember] [DataMember]
public List<Customer> CustomersList { get; private set; } // devient un set public HashSet<Customer> CustomersList { get; private set; }
public ObservableCollection<string> CategoryList { get; private set; } = new ObservableCollection<string> {"Automobile", "Santé", "Abonnement", "Logement", "Impôts et taxes", "Courses", "Loisirs et sorties", "Enfant(s)"}; public ObservableCollection<string> CategoryList { get; private set; } = new ObservableCollection<string> {"Automobile", "Santé", "Abonnement", "Logement", "Impôts et taxes", "Courses", "Loisirs et sorties", "Enfant(s)"};
@ -103,7 +103,7 @@ namespace Model
/// <param name="persistence">Gestionnaire de persistance.</param> /// <param name="persistence">Gestionnaire de persistance.</param>
public Manager(IPersistenceManager persistence) public Manager(IPersistenceManager persistence)
{ {
CustomersList = new List<Customer>(); CustomersList = new HashSet<Customer>();
Persistence = persistence; Persistence = persistence;
} }
@ -112,7 +112,7 @@ namespace Model
/// </summary> /// </summary>
public Manager() public Manager()
{ {
CustomersList = new List<Customer>(); CustomersList = new HashSet<Customer>();
} }
/// <summary> /// <summary>
@ -126,16 +126,6 @@ namespace Model
return true; return true;
} }
/// <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];
}
/// <summary> /// <summary>
/// Enregistre les données dans la source de persistance. /// Enregistre les données dans la source de persistance.
/// </summary> /// </summary>
@ -151,7 +141,7 @@ namespace Model
{ {
var data = Persistence.DataLoad(); var data = Persistence.DataLoad();
CustomersList.AddRange(data.Item1); CustomersList =data.Item1;
Consultant = data.Item2; Consultant = data.Item2;
} }

@ -115,6 +115,7 @@ namespace Model
[DataMember] [DataMember]
private DateTime date; private DateTime date;
<<<<<<< HEAD:src/Banquale/Model/Transaction.cs
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Transaction"/> class. /// Initializes a new instance of the <see cref="Transaction"/> class.
/// </summary> /// </summary>
@ -124,6 +125,9 @@ namespace Model
/// <param name="id">The unique identifier of the transaction.</param> /// <param name="id">The unique identifier of the transaction.</param>
/// <param name="date">The date 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) public Transaction(bool type, double sum, Account involvedAccounts, int id, DateTime date)
=======
public Transaction(bool type, double sum, Account involvedAccounts/*, string category*/, int id, DateTime date)
>>>>>>> b9413793a448a7f6b81d48c3a21bea9358db9927:src/Banquale/Model/Transactions.cs
{ {
Category = null; Category = null;
Type = type; Type = type;

Loading…
Cancel
Save