update conflicts

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

@ -7,7 +7,7 @@ namespace Banquale;
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.Persistence = new DataContractPersistance.DataContractPers();
MyManager.Persistence = new DataContractPersistance.DataContractPersXML();
MyManager.DataSave();
InitializeComponent();

@ -70,7 +70,6 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Stub\" />
<Folder Include="DataContractPersistance\" />
<Folder Include="Views\Category\" />
</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
{
public class DataContractPers : IPersistenceManager
public class DataContractPersXML : IPersistenceManager
{
//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)
{
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))
{

@ -20,7 +20,7 @@ namespace Banquale.Stub
Customer Customer2 = new Customer("Francis", "Begore", "Halo");
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 Account3 = new Account(3519, "Perotte", "FR7663522541416969585847002");

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

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

@ -16,12 +16,12 @@ namespace Model
/// Représente un compte bancaire.
/// </summary>
[DataContract]
public class Account : INotifyPropertyChanged, IEquatable<Account>
public class Account : INotifyPropertyChanged
{
/// <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.
@ -35,8 +35,8 @@ namespace Model
/// <summary>
/// Obtient ou définit le solde du compte.
/// </summary>
[DataMember]
public Double Balance
[DataMember(Order = 3)]
public double Balance
{
get => balance;
set
@ -48,12 +48,12 @@ namespace Model
}
}
[DataMember]
private Double balance;
private double balance;
/// <summary>
/// Obtient ou définit le nom du titulaire du compte.
/// </summary>
[DataMember]
[DataMember(Order = 1)]
public string Name
{
get => name;
@ -71,7 +71,7 @@ namespace Model
/// <summary>
/// Obtient ou définit le numéro IBAN du compte.
/// </summary>
[DataMember]
[DataMember(Order = 2)]
public string IBAN
{
get => iban;
@ -89,7 +89,7 @@ namespace Model
/// <summary>
/// Obtient une version masquée du numéro IBAN du compte.
/// </summary>
[DataMember]
[DataMember(Order = 4)]
public string IBANHide
{
get => ibanHide;
@ -107,7 +107,7 @@ namespace Model
/// <summary>
/// Obtient ou définit la liste des transactions effectuées sur le compte.
/// </summary>
[DataMember]
[DataMember(Order = 5)]
public List<Transaction> TransactionsList { get; set; } = new List<Transaction>();
/// <summary>
@ -178,6 +178,7 @@ namespace Model
return new string(res);
}
/// <summary>
/// Vérifie si deux comptes sont égaux en comparant leur numéro IBAN.
/// </summary>

@ -13,7 +13,7 @@ namespace Model
/// Représente un client.
/// </summary>
[DataContract]
public class Customer : Person
public class Customer : Person, IEquatable<Customer>//, IComparable<Customer>
{
/// <summary>
/// Liste des comptes du client.
@ -28,7 +28,18 @@ namespace Model
/// <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 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>
[DataContract]
public class Manager : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
{
public event PropertyChangedEventHandler? PropertyChanged;
void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
void OnPropertyChanged([CallerMemberName] string? propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
/// <summary>
/// Liste des clients gérés par le gestionnaire.

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

Loading…
Cancel
Save