/// <summary>
        /// Validates the file.
        /// </summary>
        /// <param name="file">The file.</param>
        /// <param name="parser">The parser.</param>
        /// <returns></returns>
        private bool ValidateFile(FileInfo file, Parser parser)
        {
            var fileSystemHelper = new FileSystemHelper();
            m_fileContent = new StringBuilder();
            var sr = new StreamReader(fileSystemHelper.GetFileNameFromFileInfo(file), Encoding.Default);
            m_fileContent.Append(sr.ReadToEnd());

            return parser == Parser.Comment
                       ? m_fileContent.ToString().StartsWith("VERSION|") &&
                         m_fileContent.ToString().Contains("|NAME|") &&
                         m_fileContent.ToString().Contains("|CONTENT|")
                       : m_fileContent.ToString().StartsWith("VERSION|") &&
                         m_fileContent.ToString().Contains("|SUBJECT|") &&
                         m_fileContent.ToString().Contains("|CONTENT|");
        }
        /// <summary>
        /// Prepares the files.
        /// </summary>
        /// <param name="fileSystemHelper">The file system helper.</param>
        /// <param name="file">The file.</param>
        /// <param name="parser">The parser.</param>
        private void PrepareFiles(FileSystemHelper fileSystemHelper, FileInfo file, Parser parser)
        {
            List<string> files = new List<string>();

            switch (parser)
            {
                case Parser.BlogEntry:
                    files = m_blogs;
                    break;
                case Parser.Comment:
                    files = m_comments;
                    break;
                case Parser.Static:
                    files = m_statics;
                    break;
            }

            if (files == null)
            {
                files = new List<string>();
            }

            if (!files.Contains(fileSystemHelper.GetFileNameFromFileInfo(file)))
            {
                FileInfo unzippedFile;
                if (!file.Extension.Contains(".gz"))
                    unzippedFile = file;
                else
                {
                    var fileName = fileSystemHelper.GetFileNameFromFileInfo(file).Replace(".gz", string.Empty);
                    unzippedFile = !File.Exists(fileName) ? fileSystemHelper.UnzipFile(file) : file;
                }

                bool result;

                switch (parser)
                {
                    case Parser.Comment:
                        result = ParseComment(unzippedFile);
                        break;
                    case Parser.Static:
                        result = ParseStaticPage(unzippedFile);
                        break;
                    //case Parser.File:
                    default:
                        result = ParseBlogEntry(unzippedFile);
                        break;
                }

                if (result)
                {
                    if (!files.Contains(fileSystemHelper.GetFileNameFromFileInfo(unzippedFile)))
                    {
                        files.Add(fileSystemHelper.GetFileNameFromFileInfo(unzippedFile));
                    }
                }
            }

            switch (parser)
            {
                case Parser.Static:
                    m_statics = files;
                    break;
                case Parser.Comment:
                    m_comments = files;
                    break;
                default:
                    m_blogs = files;
                    break;
            }
        }