public IProfile Create(string profileName)
        {
            if (Exists(profileName))
            {
                throw new Core.Services.ProfileNameConflictException(profileName);
            }

            string       profilePath     = ProfilePath(profileName);
            FileInfoBase profileFileInfo = _fileSystem.FileInfo.FromFileName(profilePath);
            StreamWriter writer          = profileFileInfo.CreateText();

            using (CsvHelper.CsvWriter csvWriter = new CsvHelper.CsvWriter(writer, leaveOpen: false))
            {
                csvWriter.Configuration.QuoteAllFields = true;
                csvWriter.Configuration.RegisterClassMap(new CSV.MatchRecordConfiguration());

                csvWriter.WriteHeader <MatchRecord>();
                csvWriter.NextRecord();
            }

            FileSystemProfile profile = new FileSystemProfile(_fileSystem, profileName, profilePath);

            AddToCache(profileName, profile);
            return(profile);
        }
        /// <summary>
        /// Creates the file with no content.
        /// </summary>
        /// <param name="instance">The file to create.</param>
        public static void CreateFileWithNoContent(this FileInfoBase instance)
        {
            if (instance == null)
            {
                throw new ArgumentNullException(nameof(instance));
            }

            using (instance.CreateText())
            {
                // nothing to do here flusing is done in disposing
            }
        }