persistance en place - attente pour test

pull/17/head
Matheo THIERRY 2 years ago
parent a24b9726ed
commit bca8018f0b

@ -3,15 +3,20 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace Biblioteque_de_Class
{
[DataContract]
public class Database
{
[DataMember]
private List<Logo> DefaultLogoList;
[DataMember]
private List<Theme> ThemeList;
[DataMember]
private List<User> UserList;
public Database()
@ -46,7 +51,7 @@ namespace Biblioteque_de_Class
{
foreach (Logo logo in DefaultLogoList)
{
if (logo.GetName() == name) { return logo.GetLink(); }
if (logo.GetName() == name) { return logo.GetLogoLink(); }
}
throw new Exception("No logo link found.");
}

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Biblioteque_de_Class
{
public class Manager
{
private PersistenceManager persistence { set; get; }
}
}

@ -1,18 +1,28 @@
using Microsoft.VisualBasic.FileIO;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Runtime.Serialization;
namespace Biblioteque_de_Class
{
[DataContract]
public class User
{
[DataMember]
private string Username { get; set; }
[DataMember]
private string Email { get; set; }
[DataMember]
private string Password { get; set; }
[DataMember]
private List<Note> NoteList;
[DataMember]
private List<Tags> TagList;
[DataMember]
private List<Note> FavList;
[DataMember]
private bool IsConnected { get; set; }
[DataMember]
private Dictionary<Note, List<Tags>> NoteTagged;
public User(string username, string email, string password)

@ -1,7 +0,0 @@
namespace Notus_Persistance
{
public class IDataManager
{
}
}

@ -6,4 +6,8 @@
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Biblioteque_de_Class\Biblioteque_de_Class.csproj" />
</ItemGroup>
</Project>

@ -0,0 +1,33 @@
using Biblioteque_de_Class;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Xml;
using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace Notus_Persistance
{
public static class PersistenceManager
{
public static void SaveDatabaseData(Database database)
{
ToJSON.SaveDatabaseData(database);
}
public static Database LoadDatabaseData()
{
return ToJSON.LoadDatabaseData();
}
public static void SaveUserData(User user)
{
ToJSON.SaveUserData(user);
}
public static User LoadUserData()
{
return ToJSON.LoadUserData();
}
}
}

@ -1,6 +1,8 @@
using System;
using Biblioteque_de_Class;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Threading.Tasks;
@ -8,6 +10,25 @@ namespace Notus_Persistance
{
internal class Stub
{
public static void SaveDatabaseData(Database database)
{
}
public static Database LoadDatabaseData()
{
}
public static void SaveUserData(User user)
{
}
public static User LoadUserData()
{
}
}
}

@ -1,12 +1,99 @@
using System;
using Biblioteque_de_Class;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Xml;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Text.Json;
namespace Notus_Persistance
{
internal class ToJSON
public static class ToJSON
{
private const string DatabaseDataFilePath = "data.json";
private const string UserDataFilePath = "userdata.json";
private static DataContractJsonSerializer DatabasejsonSerializer = new DataContractJsonSerializer(typeof(Database));
private static DataContractJsonSerializer UserjsonSerializer = new DataContractJsonSerializer(typeof(User));
public static void SaveDatabaseData(Database database)
{
using (FileStream fileStream = File.Create(DatabaseDataFilePath))
{
using (var writer = JsonReaderWriterFactory.CreateJsonWriter(
fileStream,
System.Text.Encoding.UTF8,
false,
true))//<- this boolean says that we sant indentation
{
DatabasejsonSerializer.WriteObject(writer, database);
}
}
}
public static Database LoadDatabaseData()
{
if (File.Exists(DatabaseDataFilePath))
{
Database database1;
using (FileStream fileStream = File.OpenRead(DatabaseDataFilePath))
{
Database? database = (Database?)DatabasejsonSerializer.ReadObject(fileStream);
if (database == null)
{
throw new Exception("Failed to load database. The loaded object is null.");
}
else
{
return database1 = database;
}
}
}
else
{
throw new Exception("No data file found.");
}
}
public static void SaveUserData(User user)
{
using (FileStream fileStream = File.Create(UserDataFilePath))
{
using (var writer = JsonReaderWriterFactory.CreateJsonWriter(
fileStream,
System.Text.Encoding.UTF8,
false,
true))//<- this boolean says that we sant indentation
{
UserjsonSerializer.WriteObject(writer, user);
}
}
}
public static User LoadUserData()
{
if (File.Exists(UserDataFilePath))
{
User user1;
using (FileStream fileStream = File.OpenRead(UserDataFilePath))
{
User? user = (User?)UserjsonSerializer.ReadObject(fileStream);
if (user == null)
{
throw new Exception("Failed to load database. The loaded object is null.");
}
else
{
return user1 = user;
}
}
}
else
{
throw new Exception("No userfile find");
}
}
}
}

@ -1,4 +1,8 @@
using System;
using Biblioteque_de_Class;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Xml;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@ -6,7 +10,29 @@ using System.Threading.Tasks;
namespace Notus_Persistance
{
internal class ToXML
public static class ToXML
{
private const string DataFilePath = "data.xml";
private const string XmlDataFilePath = "userdata.xml";
public static void SaveDatabaseData(Database database)
{
}
public static Database LoadDatabaseData()
{
}
public static void SaveUserData(User user)
{
}
public static User LoadUserData()
{
}
}
}

@ -1,14 +1,14 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
namespace Notus_UnitTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
}
}
}
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
namespace Notus_UnitTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
}
}
}
Loading…
Cancel
Save