From f7a6b7a6d2a6abba6f945b4dfba3b770a85dd38a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Thu, 2 Feb 2023 15:19:42 +0100 Subject: [PATCH] feat: add support for two columns file format without time --- .../Models/Packets/FilePacketProvider.cs | 46 +++++++++++-------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/src/PacketLogger/Models/Packets/FilePacketProvider.cs b/src/PacketLogger/Models/Packets/FilePacketProvider.cs index 5f9650d..a853bab 100644 --- a/src/PacketLogger/Models/Packets/FilePacketProvider.cs +++ b/src/PacketLogger/Models/Packets/FilePacketProvider.cs @@ -25,8 +25,7 @@ namespace PacketLogger.Models.Packets; public class FilePacketProvider : IPacketProvider { private readonly string _fileName; - private IReadOnlyList? _packets; - private ObservableCollection? _filteredPackets; + private SourceList? _packets; /// /// Initializes a new instance of the class. @@ -41,7 +40,8 @@ public class FilePacketProvider : IPacketProvider public bool IsOpen => false; /// - public SourceList Packets => throw new InvalidOperationException("File client not initialized yet."); + public SourceList Packets + => _packets ?? throw new InvalidOperationException("File client not initialized yet."); /// public async Task Open() @@ -51,7 +51,7 @@ public class FilePacketProvider : IPacketProvider return new NotFoundError($"Could not find file {_fileName}"); } - var packets = new List(); + var packets = new SourceList(); var index = 0; foreach (var line in await File.ReadAllLinesAsync(_fileName)) { @@ -61,25 +61,35 @@ public class FilePacketProvider : IPacketProvider } var splitted = line.Split('\t', 3); - if (splitted.Length != 3) + if (splitted.Length == 2) { - continue; + packets.Add + ( + new PacketInfo + ( + index++, + DateTime.Now, + splitted[0] == "[Recv]" ? PacketSource.Server : PacketSource.Client, + splitted[1] + ) + ); } - - packets.Add - ( - new PacketInfo + else if (splitted.Length == 3) + { + packets.Add ( - index++, - DateTime.Parse(splitted[0].Trim('[', ']')), - splitted[1] == "[Recv]" ? PacketSource.Server : PacketSource.Client, - splitted[2] - ) - ); + new PacketInfo + ( + index++, + DateTime.Parse(splitted[0].Trim('[', ']')), + splitted[1] == "[Recv]" ? PacketSource.Server : PacketSource.Client, + splitted[2] + ) + ); + } } - _packets = packets.AsReadOnly(); - _filteredPackets = new ObservableCollection(_packets); + _packets = packets; return Result.FromSuccess(); } -- 2.49.0