update conflicts

pull/50/head
Antoine PEREDERII 2 years ago
commit 2945b6177f

@ -7,7 +7,7 @@ namespace Banquale;
public partial class App : Application public partial class App : Application
{ {
public Manager MyManager { get; private set; } = new Manager(new Stub.Stub() /*DataContractPersistance.DataContractPers()*/); public Manager MyManager { get; private set; } = new Manager(new Stub.Stub() /*DataContractPersistance.DataContractPersXML()*/);
@ -15,7 +15,7 @@ public partial class App : Application
{ {
MyManager.DataLoad(); MyManager.DataLoad();
MyManager.Persistence = new DataContractPersistance.DataContractPers(); MyManager.Persistence = new DataContractPersistance.DataContractPersXML();
MyManager.DataSave(); MyManager.DataSave();
InitializeComponent(); InitializeComponent();

@ -70,7 +70,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Stub\" /> <Folder Include="Stub\" />
<Folder Include="DataContractPersistance\" />
<Folder Include="Views\Category\" /> <Folder Include="Views\Category\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

@ -0,0 +1,57 @@
using Model;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Threading.Tasks;
namespace Banquale.DataContractPersistance
{
public class DataContractPersJSON : IPersistenceManager
{
public string FilePath { get; set; } = FileSystem.Current.AppDataDirectory;
public string FileName { get; set; } = "DataSave.json";
public (List<Customer>, Consultant) DataLoad()
{
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(DataToPersist));
DataToPersist data;
using (FileStream stream2 = File.OpenRead(Path.Combine(FilePath, FileName)))
{
data = jsonSerializer.ReadObject(stream2) as DataToPersist;
}
return (data.customer, data.consultant);
}
public void DataSave(List<Customer> cu, Consultant co)
{
DataToPersist data = new DataToPersist();
data.customer = cu;
data.consultant = co;
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(DataToPersist));
using (FileStream stream = File.Create(Path.Combine(FilePath, FileName)))
{
using (var writer = JsonReaderWriterFactory.CreateJsonWriter(
stream,
System.Text.Encoding.UTF8,
false,
true))//<- this boolean says that we sant indentation
{
jsonSerializer.WriteObject(writer, data);
}
}
}
}
}

@ -8,7 +8,7 @@ using System.Xml;
namespace Banquale.DataContractPersistance namespace Banquale.DataContractPersistance
{ {
public class DataContractPers : IPersistenceManager public class DataContractPersXML : IPersistenceManager
{ {
//public string FilePath { get; set; } = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/datbase.xml"; //public string FilePath { get; set; } = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/datbase.xml";
@ -51,7 +51,8 @@ namespace Banquale.DataContractPersistance
public void DataSave(List<Customer> cu, Consultant co) public void DataSave(List<Customer> cu, Consultant co)
{ {
var serializer = new DataContractSerializer(typeof(DataToPersist)); 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
if (!Directory.Exists(FilePath)) if (!Directory.Exists(FilePath))
{ {

@ -20,7 +20,7 @@ namespace Banquale.Stub
Customer Customer2 = new Customer("Francis", "Begore", "Halo"); Customer Customer2 = new Customer("Francis", "Begore", "Halo");
Customer Customer3 = new Customer("Michel", "Boudout", "Hola"); Customer Customer3 = new Customer("Michel", "Boudout", "Hola");
Account Account1 = new Account(999, "Tatouille", "FR76 9161 9581 6296 8415 2361 004"); Account Account1 = new Account(999, "Tatouille", "FR7691619581629684152361004");
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");

@ -69,12 +69,13 @@
Grid.Row="1" Grid.Row="1"
HeightRequest="1"/> HeightRequest="1"/>
<Label Text="{Binding TransactionsList.Id}" <Label Text="{Binding TransactionsList[0].Id}"
x:Name="idLabel" /> x:Name="idLabel" />
<ListView ItemsSource="{Binding TransactionsList}" <ListView ItemsSource="{Binding TransactionsList}"
Grid.Row="2" Grid.Row="2"
SelectionMode="None"> SelectionMode="None">
<!--ItemSelected="Transactions_Clicked"-->
<ListView.ItemTemplate> <ListView.ItemTemplate>

@ -33,7 +33,7 @@ public partial class BalancePage : ContentPage
if (string.IsNullOrWhiteSpace(idLabel.Text)) if (string.IsNullOrWhiteSpace(idLabel.Text))
{ {
await DisplayAlert("Erreur", "aucune transaction présente", "OK"); await DisplayAlert("Erreur", "Aucune transaction présente", "OK");
return; return;
} }

@ -16,12 +16,12 @@ namespace Model
/// Représente un compte bancaire. /// Représente un compte bancaire.
/// </summary> /// </summary>
[DataContract] [DataContract]
public class Account : INotifyPropertyChanged, IEquatable<Account> public class Account : INotifyPropertyChanged
{ {
/// <summary> /// <summary>
/// Événement déclenché lorsqu'une propriété est modifiée. /// Événement déclenché lorsqu'une propriété est modifiée.
/// </summary> /// </summary>
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler? PropertyChanged;
/// <summary> /// <summary>
/// Déclenche l'événement PropertyChanged pour une propriété donnée. /// Déclenche l'événement PropertyChanged pour une propriété donnée.
@ -35,8 +35,8 @@ namespace Model
/// <summary> /// <summary>
/// Obtient ou définit le solde du compte. /// Obtient ou définit le solde du compte.
/// </summary> /// </summary>
[DataMember] [DataMember(Order = 3)]
public Double Balance public double Balance
{ {
get => balance; get => balance;
set set
@ -48,12 +48,12 @@ namespace Model
} }
} }
[DataMember] [DataMember]
private Double balance; private double balance;
/// <summary> /// <summary>
/// Obtient ou définit le nom du titulaire du compte. /// Obtient ou définit le nom du titulaire du compte.
/// </summary> /// </summary>
[DataMember] [DataMember(Order = 1)]
public string Name public string Name
{ {
get => name; get => name;
@ -71,7 +71,7 @@ namespace Model
/// <summary> /// <summary>
/// Obtient ou définit le numéro IBAN du compte. /// Obtient ou définit le numéro IBAN du compte.
/// </summary> /// </summary>
[DataMember] [DataMember(Order = 2)]
public string IBAN public string IBAN
{ {
get => iban; get => iban;
@ -89,7 +89,7 @@ namespace Model
/// <summary> /// <summary>
/// Obtient une version masquée du numéro IBAN du compte. /// Obtient une version masquée du numéro IBAN du compte.
/// </summary> /// </summary>
[DataMember] [DataMember(Order = 4)]
public string IBANHide public string IBANHide
{ {
get => ibanHide; get => ibanHide;
@ -107,7 +107,7 @@ namespace Model
/// <summary> /// <summary>
/// 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] [DataMember(Order = 5)]
public List<Transaction> TransactionsList { get; set; } = new List<Transaction>(); public List<Transaction> TransactionsList { get; set; } = new List<Transaction>();
/// <summary> /// <summary>
@ -178,6 +178,7 @@ namespace Model
return new string(res); return new string(res);
} }
/// <summary> /// <summary>
/// Vérifie si deux comptes sont égaux en comparant leur numéro IBAN. /// Vérifie si deux comptes sont égaux en comparant leur numéro IBAN.
/// </summary> /// </summary>

@ -13,7 +13,7 @@ namespace Model
/// Représente un client. /// Représente un client.
/// </summary> /// </summary>
[DataContract] [DataContract]
public class Customer : Person public class Customer : Person, IEquatable<Customer>//, IComparable<Customer>
{ {
/// <summary> /// <summary>
/// Liste des comptes du client. /// Liste des comptes du client.
@ -28,7 +28,18 @@ namespace Model
/// <param name="firstName">Prénom du client.</param> /// <param name="firstName">Prénom du client.</param>
/// <param name="password">Mot de passe 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)
{ } {}
public bool Equals(Customer? other)
{
if (other == null) return false;
else return other.Id.Equals(Id);
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
} }
} }

@ -15,11 +15,11 @@ namespace Model
/// </summary> /// </summary>
[DataContract] [DataContract]
public class Manager : INotifyPropertyChanged public class Manager : INotifyPropertyChanged
{ {
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler? PropertyChanged;
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> /// <summary>
/// Liste des clients gérés par le gestionnaire. /// Liste des clients gérés par le gestionnaire.

@ -22,13 +22,13 @@ namespace Model
/// <summary> /// <summary>
/// Gets the unique identifier of the transaction. /// Gets the unique identifier of the transaction.
/// </summary> /// </summary>
[DataMember] [DataMember(Order = 1)]
public int Id { get; private set; } public int Id { get; private set; }
/// <summary> /// <summary>
/// Gets or sets the type of the transaction (debit or credit). /// Gets or sets the type of the transaction (debit or credit).
/// </summary> /// </summary>
[DataMember] [DataMember(Order = 2)]
public bool Type public bool Type
{ {
get => type; get => type;
@ -46,7 +46,7 @@ namespace Model
/// <summary> /// <summary>
/// Gets or sets the sum of the transaction. /// Gets or sets the sum of the transaction.
/// </summary> /// </summary>
[DataMember] [DataMember(Order = 3)]
public double Sum public double Sum
{ {
get => sum; get => sum;
@ -64,7 +64,7 @@ namespace Model
/// <summary> /// <summary>
/// Gets or sets the account(s) involved in the transaction. /// Gets or sets the account(s) involved in the transaction.
/// </summary> /// </summary>
[DataMember] [DataMember(Order = 4)]
public Account InvolvedAccounts public Account InvolvedAccounts
{ {
get => involvedAccounts; get => involvedAccounts;
@ -82,7 +82,7 @@ namespace Model
/// <summary> /// <summary>
/// Gets or sets the category of the transaction. /// Gets or sets the category of the transaction.
/// </summary> /// </summary>
[DataMember] [DataMember(Order = 5)]
public string Category public string Category
{ {
get => category; get => category;
@ -95,12 +95,12 @@ namespace Model
} }
} }
[DataMember] [DataMember]
private string category; private string? category;
/// <summary> /// <summary>
/// Gets or sets the date of the transaction. /// Gets or sets the date of the transaction.
/// </summary> /// </summary>
[DataMember] [DataMember(Order = 6)]
public DateTime Date public DateTime Date
{ {
get => date; get => date;
@ -131,5 +131,11 @@ namespace Model
InvolvedAccounts = involvedAccounts; InvolvedAccounts = involvedAccounts;
Date = date; Date = date;
} }
public void ChangeCategory(string newCateg)
{
Category = newCateg;
}
} }
} }

Loading…
Cancel
Save