public void Close() { StopWatch(); _cached.Clear(); MinIndex = 0; MaxIndex = -1; MaxIndexChanged?.Invoke(); }
public void CacheAll() { using (var file = new StreamReader(_filename)) { ReadToTheEnd(file); } MaxIndexChanged?.Invoke(); }
public void SelectTarget(Target target) { if (!_config.AllTargets.Contains(target)) { throw new ArgumentException("Config doesnt contain selected target"); } if (target is FileTarget layoutTarget && layoutTarget.Layout is JsonLayout layout) { _connection = new JsonFileConnection(GetFilePath(layoutTarget), layout); _connection.MaxIndexChanged += () => MaxIndexChanged?.Invoke(); _connection.CacheAll(); _connection.BeginWatch(); SourceConnected?.Invoke(); } }
private void Watcher_Changed(object sender, FileSystemEventArgs e) { App.Current.Dispatcher.Invoke(() => { var lastItem = GetRecord(MaxIndex); if (lastItem == null) { return; } using (var file = new StreamReader(_filename)) { file.SetPosition(lastItem.FilePosition + lastItem.StringLength); if (ReadToTheEnd(file) > 0) { MaxIndexChanged?.Invoke(); } } }); }