This commit is contained in:
Thoscellen
2020-05-16 17:45:13 +02:00
parent 1b998a8874
commit 39783cd91e
119 changed files with 8748 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
namespace WordGen.Model {
/// <summary>
/// Gère les interactions I/O entre les objets en mémoire et les fichiers sauvegardés
/// </summary>
public class FileIoManager {
}
}

View File

@@ -0,0 +1,76 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Xml.Serialization;
namespace WordGen.Model {
/// <summary>
/// Représente un gestionnaire de sauvegarde et de lecture d'un ou plusieurs Syllabaires pour l'application en exposant des méthodes permettant de gérer des fichiers XML représentant des Syllabaires.
/// </summary>
public class SyllabaryIoManager : FileIoManager {
/// <summary>
/// Représente le dossier local applicatif et utilisateur.
/// </summary>
public static readonly String UserAppData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), Assembly.GetEntryAssembly().GetName().Name);
/// <summary>
/// Sauvegarde le Syllabaire dans un fichier a l'emplacement indiqué. Utilise le titre comme nom de fichier.
/// </summary>
/// <param name="thisSyllabary">Le sillabraire à sauvegarder dans un fichier XML</param>
/// <param name="thisPath">Le chemin d'accès au fichier dans lequel le Syllabaire sera enregistré.</param>
public void saveSyllabary(Syllabary thisSyllabary, string thisPath) {
thisPath = Path.Combine(thisPath, thisSyllabary.title);
thisPath = Path.ChangeExtension(thisPath, ".xml");
XmlSerializer xs = new XmlSerializer(typeof(Syllabary));
using (StreamWriter wr = new StreamWriter(thisPath)) {
xs.Serialize(wr, thisSyllabary);
}
}
/// <summary>
/// Charge le Syllabaire depuis le fichier précisé
/// </summary>
/// <param name="thisSillabaryFile">L'emplacement du fichier XML représentant un Syllabaire</param>
public Syllabary loadSyllabary(string thisSillabaryFile) {
XmlSerializer xs = new XmlSerializer(typeof(Syllabary));
using (StreamReader sr = new StreamReader(thisSillabaryFile)) {
Syllabary mySylla = xs.Deserialize(sr) as Syllabary;
return mySylla;
}
}
/// <summary>
/// Charge l'ensemble des fichier Syllabaire depuis le dossier précisé
/// </summary>
/// <param name="thisFolder">L'emplacement du dossier dans lequel les Syllabaires seront chargés.</param>
public List<Syllabary> loadAllSyllabaries(string thisFolder) {
List<Syllabary> openedSylla = new List<Syllabary>();
foreach (string aFile in Directory.GetFiles(thisFolder)) {
if (Path.GetExtension(aFile).ToLower().Equals(".xml")) {
try {
openedSylla.Add(this.loadSyllabary(aFile));
} catch (InvalidOperationException ) {
//Some XML files are not Syllables.
}
}
}
return openedSylla;
}
/// <summary>
/// Sauvegarde l'ensemble des objets Syllabaires spécifiés à l'emplacement spécifié.
/// </summary>
/// <param name="thosesSillabaries">La liste des Syllabaires à sauvegarder dans des fichiers XML.</param>
/// <param name="thisFolder">L'emplacement du dossier dans lequel les Syllabaires seront créés.</param>
public void saveAllSyllabaries(List<Syllabary> thosesSillabaries, string thisFolder) {
foreach (Syllabary aSylla in thosesSillabaries) {
saveSyllabary(aSylla, thisFolder);
}
}
}
}

View File

@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using WordGen.Model;
namespace WordGen {
static class Program {
/// <summary>
/// Point d'entrée principal de l'application.
/// </summary>w
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
SyllabaryWrapper.LoadFromDrive();
Application.Run(new View.MainForm());
}
}
}

View File

@@ -0,0 +1,28 @@
namespace WordGen.Properties {
// Cette classe vous permet de gérer des événements spécifiques dans la classe de paramètres :
// L'événement SettingChanging est déclenché avant la modification d'une valeur de paramètre.
// L'événement PropertyChanged est déclenché après la modification d'une valeur de paramètre.
// L'événement SettingsLoaded est déclenché après le chargement des valeurs de paramètre.
// L'événement SettingsSaving est déclenché avant l'enregistrement des valeurs de paramètre.
public sealed partial class Settings {
public Settings() {
// // Pour ajouter des gestionnaires d'événements afin d'enregistrer et de modifier les paramètres, supprimez les marques de commentaire des lignes ci-dessous :
//
// this.SettingChanging += this.SettingChangingEventHandler;
//
// this.SettingsSaving += this.SettingsSavingEventHandler;
//
}
private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
// Ajouter du code pour gérer l'événement SettingChangingEvent ici.
}
private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
// Ajouter du code pour gérer l'événement SettingsSaving ici.
}
}
}