コード例 #1
0
        internal bool OpenLog(string filename)
        {
            log.DebugFormat("Opening log '{0}'", filename);

            this.currentSearchText = String.Empty;
            this.logEntries.Clear();

            var parseResult = defaultParser.ParseLogFile(filename);

            if (!parseResult.Success)
            {
                this.ErrorMessage     = parseResult.ErrorMessage;
                this.ShowErrorMessage = true;
                return(false);
            }

            if (this.ColumnConfig.Columns != null)
            {
                foreach (var column in this.ColumnConfig.Columns)
                {
                    column.PropertyChanged -= NotifyColumnChanged;
                }
            }

            List <Column> columns = parseResult.LogFile.Keys.Select(ak => new Column()
            {
                Header = ak, DataField = String.Format("[{0}]", ak), EntryKey = ak, IsVisible = true
            }).ToList();

            this.ColumnConfig.Columns = columns;

            foreach (var column in columns)
            {
                column.PropertyChanged += NotifyColumnChanged;
            }

            NotifyOfPropertyChange(() => ColumnConfig);

            this.logEntries.AddRange(parseResult.LogFile.Entries);

            return(true);
        }