/// <summary> /// Speichert den Inhalt eines <see cref="Contact"/>-Objekts als vCard-Datei (.vcf). /// </summary> /// <param name="contact">Das zu speichernde <see cref="Contact"/>-Objekt. Wenn <paramref name="contact"/> keine Daten enthält, /// wird keine Datei erzeugt.</param> /// <param name="fileName">Der Dateipfad der zu erzeugenden VCF-Datei. /// Existiert die Datei schon, wird sie überschrieben.</param> /// <param name="version">Dateiversion der zu speichernden VCF-Datei.</param> /// /// <remarks> /// <para> /// Die Methode ruft auf <paramref name="contact"/> <see cref="Contact.Clean"/> auf. Wenn /// die Eigenschaft <see cref="Contact.IsEmpty"/> von <paramref name="contact"/> danach <c>true</c> zurückgibt, wird eine keine Datei erzeugt. /// Falls es unerwünscht ist, dass die Methode <paramref name="contact"/> durch den Aufruf von <see cref="Contact.Clean"/> ändert, /// können Sie vorher mit <see cref="Contact.Clone"/> eine /// Kopie von <paramref name="contact"/> erstellen und der Methode dann die Kopie übergeben. /// </para> /// <para>Zum Speichern mehrerer <see cref="Contact"/>-Objekte in einer gemeinsamen VCF-Datei eignet sich die /// Methode <see cref="ContactPersistence.SaveVcf(string, IEnumerable{Contact?}, VCardVersion)"/> oder die /// Erweiterungsmethode <see cref="ContactCollectionExtension.SaveVcf(IEnumerable{Contact?}, string, VCardVersion)"/>. /// </para> /// </remarks> /// /// <exception cref="ArgumentNullException"><paramref name="contact"/> oder <paramref name="fileName"/> ist <c>null</c>.</exception> /// <exception cref="ArgumentException"> /// <para><paramref name="fileName"/> ist kein gültiger Dateipfad.</para> /// <para>- oder -</para> /// <para><paramref name="version"/> hat einen nichtdefinierten Wert.</para> /// </exception> /// <exception cref="IOException">Die Datei konnte nicht geschrieben werden.</exception> public static void SaveVcf(this Contact contact, string fileName, VCardVersion version = VCardVersion.V3_0) => VcfWriter.Write(contact, fileName, version);
/// <summary> /// Speichert den Inhalt einer Sammlung von <see cref="Contact"/>-Objekten in eine gemeinsame /// vCard-Datei (*.vcf). /// </summary> /// /// <param name="fileName">Der Dateipfad der zu erzeugenden VCF-Datei. /// Existiert die Datei schon, wird sie überschrieben.</param> /// <param name="contacts"> /// <para> /// Die zu speichernde Sammlung von <see cref="Contact"/>-Objekten. /// </para> /// <para> /// Die Sammlung darf leer sein oder <c>null</c>-Werte /// enthalten. Wenn die Sammlung kein <see cref="Contact"/>-Objekt enthält, das Daten enthält, wird keine Datei erzeugt. /// </para> /// </param> /// <param name="version">Dateiversion der zu speichernden vCard.</param> /// /// <remarks> /// <para> /// Die Methode ruft auf allen als Argument übergebenen <see cref="Contact"/>-Objekten <see cref="Contact.Clean"/> auf. Alle /// <see cref="Contact"/>-Objekte deren Eigenschaft <see cref="Contact.IsEmpty"/> danach <c>true</c> zurückgibt, werden nicht in /// die Datei geschrieben. /// </para> /// <para> /// Falls es unerwünscht ist, dass die Methode die <see cref="Contact"/>-Objekte durch den Aufruf von <see cref="Contact.Clean"/> ändert, /// können Sie vorher mit <see cref="Contact.Clone"/> /// Kopien der <see cref="Contact"/>-Objekte erstellen und der Methode dann die Kopien übergeben. /// </para> /// </remarks> /// /// <exception cref="ArgumentNullException"><paramref name="contacts"/> oder <paramref name="fileName"/> ist <c>null</c>.</exception> /// <exception cref="ArgumentException"> /// <para><paramref name="fileName"/> ist kein gültiger Dateipfad.</para> /// <para>- oder -</para> /// <para><paramref name="version"/> hat einen nichtdefinierten Wert.</para> /// </exception> /// <exception cref="IOException">Die Datei konnte nicht geschrieben werden.</exception> public static void SaveVcf(string fileName, IEnumerable <Contact?> contacts, VCardVersion version = VCardVersion.V3_0) => VcfWriter.Write(contacts, fileName, version);