Ajout d'une fonctionnalité d'import/export CSV + amélioration de l'écran de démarrage
This commit is contained in:
@@ -200,7 +200,7 @@ namespace Hermes {
|
||||
}
|
||||
if(mails.Count > 0) {
|
||||
if(noMail) {
|
||||
MessageBox.Show("Certains des citoyens sélectionnés ne disposent pas d'une adresse E-Mail. Voulez-vous continuer ?", "Envoi de courriel", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
|
||||
result = MessageBox.Show("Certains des citoyens sélectionnés ne disposent pas d'une adresse E-Mail. Voulez-vous continuer ?", "Envoi de courriel", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
|
||||
if(result == MessageBoxResult.No) {
|
||||
return;
|
||||
}
|
||||
@@ -255,10 +255,10 @@ namespace Hermes {
|
||||
string villeSecondaire = citoyen.AdresseSecondaireVille == null ? "" : citoyen.AdresseSecondaireVille;
|
||||
|
||||
sb.AppendLine($"\"{civilite}\";\"{nom}\";\"{nomNaissance}\";\"{prenom}\";\"{profession}\";\"{typeResidence}\";\"{mail}\";\"{tel}\";\"{telPort}\";\"{quartier}\";\"{batiment}\";\"{numeroBatiment}\";\"{adresseLocale}\";\"{cpLocal}\";{villeLocale};\"{adressePrincipale}\";\"{cpPrincipal}\";\"{villePrincipale}\";\"{adresseSecondaire}\";\"{cpSecondaire}\";\"{villeSecondaire}\"");
|
||||
|
||||
File.WriteAllText(csvPath, sb.ToString(), Encoding.GetEncoding("ISO-8859-1"));
|
||||
}
|
||||
|
||||
File.WriteAllText(csvPath, sb.ToString(), Encoding.GetEncoding("ISO-8859-1"));
|
||||
|
||||
OpenFileDialog ofd = new OpenFileDialog();
|
||||
ofd.Filter = "Document World|*.doc;*.docx;*.dotx|Tous les ficiers|*.*";
|
||||
|
||||
@@ -276,10 +276,56 @@ namespace Hermes {
|
||||
|
||||
private void Importer_Click(object sender, RoutedEventArgs e) {
|
||||
OpenFileDialog ofd = new OpenFileDialog();
|
||||
ofd.Filter = "Classeur Excel|*.xls;*.xlsx;*.xlsm|Tous les ficiers|*.*";
|
||||
ofd.Filter = "Fichiers de données|*.xls;*.xlsx;*.xlsm;*.csv";
|
||||
if(ofd.ShowDialog() == true) {
|
||||
ImportWindow importWindow = new ImportWindow(this, ofd.FileName);
|
||||
importWindow.ShowDialog();
|
||||
if(Path.GetExtension(ofd.FileName).ToLower().Equals(".csv")) {
|
||||
try {
|
||||
StreamReader reader = File.OpenText(ofd.FileName);
|
||||
string csvHeader = reader.ReadLine();
|
||||
if(csvHeader == null) {
|
||||
return;
|
||||
}
|
||||
string[] fields = CitoyensSerializer.ParseHeader(csvHeader);
|
||||
CitoyensSerializer serializer = new CitoyensSerializer(fields);
|
||||
while(!reader.EndOfStream) {
|
||||
string line = reader.ReadLine();
|
||||
Citoyen citoyen = serializer.Deserialize(line);
|
||||
if(citoyen != null) {
|
||||
dbContext.CitoyenSet.Add(citoyen);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
} catch(Exception ex) {
|
||||
MessageBox.Show("Erreur lors de l'import des données", "Importer", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
} else {
|
||||
ImportWindow importWindow = new ImportWindow(this, ofd.FileName);
|
||||
importWindow.ShowDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Exporter_Click(object sender, RoutedEventArgs e) {
|
||||
if(dgCitoyens.SelectedItems.Count == 0) {
|
||||
MessageBox.Show("Aucun citoyen sélectionné.", "Exporter", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
return;
|
||||
}
|
||||
|
||||
SaveFileDialog sfd = new SaveFileDialog();
|
||||
sfd.Filter = "Fichier CSV|*.csv";
|
||||
sfd.OverwritePrompt = true;
|
||||
if(sfd.ShowDialog() == true) {
|
||||
try {
|
||||
StreamWriter s = File.CreateText(sfd.FileName);
|
||||
CitoyensSerializer serializer = new CitoyensSerializer();
|
||||
s.WriteLine(serializer.GetCsvHeader());
|
||||
foreach(Citoyen citoyen in dgCitoyens.SelectedItems) {
|
||||
s.WriteLine(serializer.Serialize(citoyen));
|
||||
}
|
||||
s.Close();
|
||||
} catch(Exception) {
|
||||
MessageBox.Show("Erreur lors de l'export des données", "Exporter", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user