private void CrawlFolders(string path, List <SenseLogInfo> info, bool recursive) { if (!_fileSystem.DirectoryExists(path)) { return; } if (recursive) { var dirs = _fileSystem.EnumerateDirectories(path).ToList(); dirs.ForEach(p => { var dir = new SenseLogInfo { Name = _fileSystem.Path.GetFileName(p), IsDirectory = true, LogFilePath = p, }; info.Add(dir); CrawlFolders(p, dir.LogInfos, true); }); } _fileSystem.EnumerateFiles(path, "*.*").ToList().ForEach(pfile => { AddToFile(pfile, info); }); }
private DateTime GetDateColumnGetter(SenseLogInfo model) { return(model.LastModified); }
private void AddNewLog(SenseLogInfo logInfo, string key) { var splash = SplashManager.Loader.ShowFloatingSplash(this, "Opening log"); try { if (_gridAndData.ContainsKey(key)) { return; } _gridAndData.Add(key, new DataWrapper { Name = logInfo.Name, IsDirectory = logInfo.IsDirectory, LogFilePath = logInfo.LogFilePath, LastModified = logInfo.LastModified }); ctrlTab1.SuspendLayout(); ctrlTab1.TabPages.Add(key, logInfo.Name); var tab = ctrlTab1.TabPages[key]; tab.Tag = key; tab.ImageIndex = 0; var gridCtrl = new GridWrapperControl <GenericDataWrapper>(RecalcFilterBox, _gridAndData[key].GridAndDataWrapper); gridCtrl.Grid.Scroll += GridCtrlOnScroll; gridCtrl.Grid.MouseMove += GridOnMouseMove; gridCtrl.Grid.MouseDown += (sender, args) => { ctrlPreview.HideDisplay(); }; gridCtrl.RightClikFilterGenerator = GenerateRightClickMenu; gridCtrl.RightClikFilterDateColumnGetter = RightClikFilterDateColumnGetter; gridCtrl.ClearFiltersInAllGrids = ClearFiltersInAllGrids; gridCtrl.Dock = DockStyle.Fill; tab.Controls.Add(gridCtrl); _gridAndData[key].GenericDataWrapperService.LogFileAnalyzer = new LogFileAnalyzerService(); var fileCutoff = _gridAndData[key].GenericDataWrapperService.LoadToJson(logInfo.LogFilePath); _gridAndData[key].GridAndDataWrapper.GridHelper = CreateGrid(gridCtrl.Grid, key, _gridAndData[key]); _gridAndData[key].GridAndDataWrapper.GridInvoked = true; _gridAndData[key].GridAndDataWrapper.GridHelper.Grid.FormatRow += GridOnFormatRow; _gridAndData[key].GridAndDataWrapper.DateColumnGetter = GetDateColumnGetter; _gridAndData[key].GridWrapperControl = gridCtrl; ResizeAllToCurrentSize(gridCtrl.Controls); _closeTabHelper[0].SetTabHeader(tab, _gridAndData[key].GenericDataWrapperService.LogFileAnalyzer.SimplifiedFailureLevel); ctrlTab1.SelectedTab = tab; ctrlTab1.ResumeLayout(); if (ctrlTab1.TabPages.Count > 1 || ctrlTab1.TabPages.Count > 1) { picDown.Visible = true; } splash.Dispose(); if (fileCutoff > 0) { Mbox.Show("This file is too large and has been capped at 1 million lines.", "I'm sorry about this"); } } catch (Exception e) { splash.Dispose(); Mbox.Show($"Failed opening log \r\n{e}", "Failure"); } }