예제 #1
0
        /// <summary>
        /// Exporte le fichier chiffré directement
        /// </summary>
        /// <returns>la liste des erreurs</returns>
        public async Task <string> ExporterKwi()
        {
            var retour = Validate();

            if (string.IsNullOrWhiteSpace(retour))
            {
                if (!StringUtils.GetExtension(Fichier.Name).Equals(FormatChoisi.Format))
                {
                    await Fichier.RenameAsync(Fichier.Name + "." + FormatChoisi.Format);
                }

                var xs = new XmlSerializer(typeof(Dossier));
                using (var wr = new StringWriter())
                {
                    xs.Serialize(wr, SelectedDossier);
                    var dataToSave = CryptUtils.AesEncryptStringToByteArray(wr.ToString(), MdpCypher, MdpCypher);
                    await FileIO.WriteBytesAsync(Fichier, dataToSave);

                    //anciennement pour exporter tout le fichier
                    //await FileIO.WriteTextAsync(fichier, wr.ToString(), Windows.Storage.Streams.UnicodeEncoding.Utf8);
                }

                //await FileIO.WriteBytesAsync(fichier, await ContexteAppli.fichierPassword.lireByteArray());
            }
            return(retour);
        }
예제 #2
0
        /// <summary>
        /// exporte en format CSV les mots de passe d'un dossier et de ses sous dossiers
        /// </summary>
        /// <returns>Retourne la liste des erreurs</returns>
        public async Task <string> ExporterCsv()
        {
            var retour = Validate();

            if (string.IsNullOrWhiteSpace(retour))
            {
                if (!StringUtils.GetExtension(Fichier.Name).Equals(FormatChoisi.Format))
                {
                    await Fichier.RenameAsync(Fichier.Name + "." + FormatChoisi.Format);
                }

                var chaine = new StringBuilder();

                var listeMotDePasse = getAllMotDePasse(SelectedDossier);

                foreach (var mot in listeMotDePasse)
                {
                    chaine.Append(CsvCaractereFinChaine + mot.Titre + CsvCaractereFinChaine + CsvCaractereSeparateur);
                    chaine.Append(CsvCaractereFinChaine + mot.Login + CsvCaractereFinChaine + CsvCaractereSeparateur);
                    chaine.Append(CsvCaractereFinChaine + mot.MotDePasseObjet + CsvCaractereFinChaine + CsvCaractereSeparateur);
                    chaine.Append(CsvCaractereFinChaine + mot.Commentaire + CsvCaractereFinChaine + CsvCaractereSeparateur);
                    chaine.Append(CsvCaractereFinChaine + mot.SiteWeb + CsvCaractereFinChaine);
                    chaine.Append(CsvRetourLigne);
                }

                await FileIO.WriteTextAsync(Fichier, chaine.ToString(), Windows.Storage.Streams.UnicodeEncoding.Utf8);
            }
            return(retour);
        }
예제 #3
0
        /// <summary>
        /// Exporte en format xml le dossier avec le système de sérialization
        /// </summary>
        /// <returns>la liste des éventuelles erreurs</returns>
        public async Task <string> ExporterXml()
        {
            var retour = Validate();

            if (string.IsNullOrWhiteSpace(retour))
            {
                if (!StringUtils.GetExtension(Fichier.Name).Equals(FormatChoisi.Format))
                {
                    await Fichier.RenameAsync(Fichier.Name + "." + FormatChoisi.Format);
                }

                var xs = new XmlSerializer(typeof(Dossier));
                using (var wr = new StringWriter())
                {
                    xs.Serialize(wr, SelectedDossier);
                    await FileIO.WriteTextAsync(Fichier, wr.ToString(), Windows.Storage.Streams.UnicodeEncoding.Utf8);
                }
            }
            return(retour);
        }