Пример #1
0
        /// <summary>
        /// This method tries to save given values into given file.
        /// </summary>
        /// <remarks>
        /// This method determines the file existence and performs file
        /// deletion if requested. Thereafter, the file content is handled
        /// by creating and processing a stream.
        /// </remarks>
        /// <param name="values">
        /// The list of values to be written to the CSV file.
        /// </param>
        /// <param name="filename">
        /// The fully qualified path of the output file.
        /// </param>
        /// <param name="settings">
        /// The settings to be used to generate the output of the CSV file.
        /// </param>
        /// <param name="overwrite">
        /// If true, then a possible existing file is overwritten. Otherwise,
        /// an exception is thrown if a file with the same name already exists.
        /// </param>
        /// <exception cref="ArgumentException">
        /// This exception is thrown either in case of given values are invalid
        /// or if given filename is invalid.
        /// </exception>
        /// <exception cref="InvalidOperationException">
        /// This exception is thrown if overwrite mode is disabled and given
        /// file already exists or in case of given file could not be deleted.
        /// Another reason could be the case when property parsing fails.
        /// </exception>
        /// <exception cref="NotSupportedException">
        /// This exception is thrown in case of confirming and ordering the column
        /// offsets fails.
        /// </exception>
        public static void Save(IEnumerable <TInstance> values, String filename, CsvSettings settings, Boolean overwrite)
        {
            if (String.IsNullOrWhiteSpace(filename))
            {
                throw new ArgumentException("The filename should not be empty.", nameof(filename));
            }

            if (!overwrite && File.Exists(filename))
            {
                throw new InvalidOperationException($"File {filename} already exists and cannot be overwritten with disabled overwrite mode.");
            }

            if (File.Exists(filename))
            {
                try
                {
                    File.Delete(filename);
                }
                catch (Exception exception)
                {
                    throw new InvalidOperationException($"Could not delete file {filename}. See inner exception for more details.", exception);
                }
            }

            using (Stream stream = File.Create(filename))
            {
                CsvExporter <TInstance> .Save(values, stream, settings);
            }
        }
Пример #2
0
 /// <summary>
 /// This method tries to save given values into given stream.
 /// </summary>
 /// <remarks>
 /// This method performes saving of data with default settings. Using
 /// default settings means that the header is written. Further, needed
 /// header information is taken from the column attributes or from property
 /// names. Finally, a special textual treatment is not applied.
 /// </remarks>
 /// <param name="values">
 /// The list of values to be written into given stream.
 /// </param>
 /// <param name="stream">
 /// The stream to write given values into.
 /// </param>
 /// <exception cref="ArgumentException">
 /// This exception is thrown either in case of given values are invalid
 /// or if given stream does not allow write access.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 /// This exception is thrown if given stream is &lt;null&gt;.
 /// </exception>
 /// <exception cref="InvalidOperationException">
 /// This exception is thrown in case of property parsing fails.
 /// </exception>
 /// <exception cref="NotSupportedException">
 /// This exception is thrown in case of confirming and ordering the column
 /// offsets fails.
 /// </exception>
 public static void Save(IEnumerable <TInstance> values, Stream stream)
 {
     CsvExporter <TInstance> .Save(values, stream, new CsvSettings());
 }
Пример #3
0
 /// <summary>
 /// This method tries to save given values into given file.
 /// </summary>
 /// <remarks>
 /// This method performes saving of data using given settings.
 /// But keep in mind, a possible existing file is overwritten.
 /// </remarks>
 /// <param name="values">
 /// The list of values to be written to the CSV file.
 /// </param>
 /// <param name="filename">
 /// The fully qualified path of the output file.
 /// </param>
 /// <param name="settings">
 /// The settings to be used to generate the output of the CSV file.
 /// </param>
 /// <exception cref="ArgumentException">
 /// This exception is thrown in case of given filename is invalid.
 /// </exception>
 /// <exception cref="InvalidOperationException">
 /// This exception is thrown in case of given file could not be deleted.
 /// Another reason could be the case when property parsing fails.
 /// </exception>
 /// <exception cref="NotSupportedException">
 /// This exception is thrown in case of confirming and ordering the column
 /// offsets fails.
 /// </exception>
 public static void Save(IEnumerable <TInstance> values, String filename, CsvSettings settings)
 {
     CsvExporter <TInstance> .Save(values, filename, settings, true);
 }
Пример #4
0
 /// <summary>
 /// This method tries to save given values into given file.
 /// </summary>
 /// <remarks>
 /// This method performes saving of data with default settings. Using
 /// default settings means that the header is written and a possible
 /// existing file is overwritten. Further, needed header information is
 /// taken from column attributes or from property names.
 /// </remarks>
 /// <param name="values">
 /// The list of values to be written to the CSV file.
 /// </param>
 /// <param name="filename">
 /// The fully qualified path of the output file.
 /// </param>
 /// <exception cref="ArgumentException">
 /// This exception is thrown in case of given filename is invalid.
 /// </exception>
 /// <exception cref="InvalidOperationException">
 /// This exception is thrown in case of given file could not be deleted.
 /// Another reason could be the case when property parsing fails.
 /// </exception>
 /// <exception cref="NotSupportedException">
 /// This exception is thrown in case of confirming and ordering the column
 /// offsets fails.
 /// </exception>
 public static void Save(IEnumerable <TInstance> values, String filename)
 {
     CsvExporter <TInstance> .Save(values, filename, new CsvSettings());
 }