protected override void OnMvcContextChanged() { m_requestCollection = (LogRequestCollection)MvcContext; m_requestFilterGrid.DataSource = m_requestCollection; }
protected override void ThreadJob() { List <LogSubRequest> allLogs = new List <LogSubRequest>(); List <LogSubRequest> logs; bool fileLocked; for (int i = 0; i < m_fileNames.Count && !Cancel; i++) { if (m_fileCache.ContainsKey(m_fileNames[i])) { logs = m_fileCache[m_fileNames[i]]; } else { m_parsedFileCount = i; RaizeJobProgressEvent( new JobProgressEventArgs( string.Format("Parsing... ({0}/{1})", i + 1, m_fileNames.Count), i * 100 / m_fileNames.Count, string.Empty, 0)); IList <string> lines = Helpers.IOUtilities.GetLinesFromFile(m_fileNames[i], out fileLocked); if (fileLocked) { m_fileLocked = true; } RaizeJobProgressEvent( new JobProgressEventArgs( string.Empty, -1, string.Format("{0} ({1} lines)", Path.GetFileName(m_fileNames[i]), lines.Count), 0)); m_parser = parserFactory.GetParser(m_fileNames[i], lines); m_parser.ParseProgress += OnParseProgress; m_logVersion = m_parser.LogVersion; logs = m_parser.Parse(m_fileNames[i], lines); m_parser.ParseProgress -= OnParseProgress; if (!fileLocked) { m_fileCache.Add(m_fileNames[i], logs); } } allLogs.AddRange(logs); GC.Collect(); } if (m_fileNames.Count > 1) { allLogs.Sort(); } string caption = (m_fileNames.Count == 1 ? Path.GetFileName(m_fileNames[0]) : "Merge "); LogSubRequestCollection logRowCollection = new LogSubRequestCollection(allLogs, m_logVersion, m_fileLocked, m_fileNames); m_logRequestCollection = new LogRequestCollection(logRowCollection); }