/// <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; } }