diff --git a/Day/2024-Q2/Helper-2024-04-03.cs b/Day/2024-Q2/Helper-2024-04-03.cs index eff0e29..53e5467 100644 --- a/Day/2024-Q2/Helper-2024-04-03.cs +++ b/Day/2024-Q2/Helper-2024-04-03.cs @@ -13,6 +13,40 @@ internal static partial class Helper20240403 string Pattern, string Primary); + private static void AlertIfNewDeviceIsConnected(DynamicHostConfigurationProtocolConfiguration dynamicHostConfigurationProtocolConfiguration, ILogger logger) + { + string[] files = Directory.GetFiles(dynamicHostConfigurationProtocolConfiguration.Directory, dynamicHostConfigurationProtocolConfiguration.Pattern, SearchOption.TopDirectoryOnly); + string? match = GetMatch(dynamicHostConfigurationProtocolConfiguration, files); + if (string.IsNullOrEmpty(match)) + throw new NotSupportedException($"{dynamicHostConfigurationProtocolConfiguration.Primary} doesn't exist!"); + ReadOnlyDictionary keyToCounts = GetKeyToCounts(dynamicHostConfigurationProtocolConfiguration, files); + foreach (KeyValuePair keyToCount in keyToCounts) + { + if (keyToCount.Value < 2) + continue; + logger.LogInformation("{Key}: {Count}", keyToCount.Key, keyToCount.Value); + } + ReadOnlyDictionary>> keyValuePairs = GetKeyValuePairs(dynamicHostConfigurationProtocolConfiguration, files); + foreach (KeyValuePair>> keyValuePair in keyValuePairs) + { + if (!keyValuePair.Key.EndsWith(dynamicHostConfigurationProtocolConfiguration.Primary)) + continue; + } + } + + internal static void AlertIfNewDeviceIsConnected(ILogger logger, List args) + { + string ignore = args[6]; + string pattern = args[2]; + string primary = args[3]; + string keyIndex = args[5]; + string directory = args[0]; + logger.LogInformation(directory); + string[] columns = args[4].Split('|'); + DynamicHostConfigurationProtocolConfiguration dynamicHostConfigurationProtocolConfiguration = new(columns, directory, ignore, int.Parse(keyIndex), pattern, primary); + AlertIfNewDeviceIsConnected(dynamicHostConfigurationProtocolConfiguration, logger); + } + private static string? GetMatch(DynamicHostConfigurationProtocolConfiguration dynamicHostConfigurationProtocolConfiguration, string[] files) { string? result = null; @@ -114,38 +148,4 @@ internal static partial class Helper20240403 return results; } - private static void AlertIfNewDeviceIsConnected(DynamicHostConfigurationProtocolConfiguration dynamicHostConfigurationProtocolConfiguration, ILogger logger) - { - string[] files = Directory.GetFiles(dynamicHostConfigurationProtocolConfiguration.Directory, dynamicHostConfigurationProtocolConfiguration.Pattern, SearchOption.TopDirectoryOnly); - string? match = GetMatch(dynamicHostConfigurationProtocolConfiguration, files); - if (string.IsNullOrEmpty(match)) - throw new NotSupportedException($"{dynamicHostConfigurationProtocolConfiguration.Primary} doesn't exist!"); - ReadOnlyDictionary keyToCounts = GetKeyToCounts(dynamicHostConfigurationProtocolConfiguration, files); - foreach (KeyValuePair keyToCount in keyToCounts) - { - if (keyToCount.Value < 2) - continue; - logger.LogInformation("{Key}: {Count}", keyToCount.Key, keyToCount.Value); - } - ReadOnlyDictionary>> keyValuePairs = GetKeyValuePairs(dynamicHostConfigurationProtocolConfiguration, files); - foreach (KeyValuePair>> keyValuePair in keyValuePairs) - { - if (!keyValuePair.Key.EndsWith(dynamicHostConfigurationProtocolConfiguration.Primary)) - continue; - } - } - - internal static void AlertIfNewDeviceIsConnected(ILogger logger, List args) - { - string ignore = args[6]; - string pattern = args[2]; - string primary = args[3]; - string keyIndex = args[5]; - string directory = args[0]; - logger.LogInformation(directory); - string[] columns = args[4].Split('|'); - DynamicHostConfigurationProtocolConfiguration dynamicHostConfigurationProtocolConfiguration = new(columns, directory, ignore, int.Parse(keyIndex), pattern, primary); - AlertIfNewDeviceIsConnected(dynamicHostConfigurationProtocolConfiguration, logger); - } - } \ No newline at end of file diff --git a/Day/2024-Q2/Helper-2024-04-04.cs b/Day/2024-Q2/Helper-2024-04-04.cs index 699bcb6..3047242 100644 --- a/Day/2024-Q2/Helper-2024-04-04.cs +++ b/Day/2024-Q2/Helper-2024-04-04.cs @@ -21,27 +21,6 @@ internal static partial class Helper20240404 string RegularExpressionPattern, string SearchPattern); - private static MetaData? GetMetaData(CommaSeparatedValuesConfiguration commaSeparatedValuesConfiguration, string fileNameWithoutExtension) - { - MetaData? result; - Match match = Regex.Match(fileNameWithoutExtension, commaSeparatedValuesConfiguration.RegularExpressionPattern); - if (!match.Success || match.Groups.Count != commaSeparatedValuesConfiguration.RegularExpressionGroupCount) - result = null; - else - { - int deviceId = int.Parse(match.Groups["DeviceId"].Value); - int deviceNumber = int.Parse(match.Groups["DeviceNumber"].Value); - result = new(deviceId, - match.Groups["DeviceType"].Value, - deviceNumber, - match.Groups["DescriptionName"].Value, - match.Groups["DescriptionTest"].Value, - match.Groups["Frequency"].Value, - match.Groups["Date"].Value); - } - return result; - } - private static void ParseCSV(CommaSeparatedValuesConfiguration commaSeparatedValuesConfiguration, ILogger logger) { string line; @@ -93,4 +72,25 @@ internal static partial class Helper20240404 ParseCSV(commaSeparatedValuesConfiguration, logger); } + private static MetaData? GetMetaData(CommaSeparatedValuesConfiguration commaSeparatedValuesConfiguration, string fileNameWithoutExtension) + { + MetaData? result; + Match match = Regex.Match(fileNameWithoutExtension, commaSeparatedValuesConfiguration.RegularExpressionPattern); + if (!match.Success || match.Groups.Count != commaSeparatedValuesConfiguration.RegularExpressionGroupCount) + result = null; + else + { + int deviceId = int.Parse(match.Groups["DeviceId"].Value); + int deviceNumber = int.Parse(match.Groups["DeviceNumber"].Value); + result = new(deviceId, + match.Groups["DeviceType"].Value, + deviceNumber, + match.Groups["DescriptionName"].Value, + match.Groups["DescriptionTest"].Value, + match.Groups["Frequency"].Value, + match.Groups["Date"].Value); + } + return result; + } + } \ No newline at end of file diff --git a/Day/2024-Q2/Helper-2024-05-17.cs b/Day/2024-Q2/Helper-2024-05-17.cs index 8892f3c..0173bf3 100644 --- a/Day/2024-Q2/Helper-2024-05-17.cs +++ b/Day/2024-Q2/Helper-2024-05-17.cs @@ -236,40 +236,6 @@ internal static partial class Helper20240517 { } - private static ReadOnlyCollection<(string, string)> GetAggregationLines(string harFile) - { - List<(string, string)> results = []; - if (!File.Exists(harFile)) - throw new Exception(); - string lastUrl = string.Empty; - string text = "\"text\": \"{"; - string[] lines = File.ReadAllLines(harFile); - foreach (string line in lines) - { - if (line.Contains("\"url\": \"")) - lastUrl = line; - if (!line.Contains(text)) - continue; - if (!line.Contains("aggregations")) - continue; - if (lastUrl.Contains("search?asset=NONE")) - continue; - results.Add(new(lastUrl, line.Trim()[(text.Length - 1)..^1].Replace("\\\"", "\""))); - lastUrl = string.Empty; - } - return new(results); - } - - private static void SaveAmazon(IReadOnlyList data, string personIdFile) - { - string json; - Dictionary keyValuePairs = []; - foreach (Datum datum in data) - _ = keyValuePairs.TryAdd(datum.Name.Split('.')[0], datum); - json = JsonSerializer.Serialize(keyValuePairs, DictionaryDatumGenerationContext.Default.DictionaryStringDatum); - File.WriteAllText(personIdFile, json); - } - private static void SaveAmazon(string destination, string harFile) { string offset; @@ -331,4 +297,38 @@ internal static partial class Helper20240517 logger?.LogInformation("{harFiles} count", harFiles.Length); } + private static void SaveAmazon(IReadOnlyList data, string personIdFile) + { + string json; + Dictionary keyValuePairs = []; + foreach (Datum datum in data) + _ = keyValuePairs.TryAdd(datum.Name.Split('.')[0], datum); + json = JsonSerializer.Serialize(keyValuePairs, DictionaryDatumGenerationContext.Default.DictionaryStringDatum); + File.WriteAllText(personIdFile, json); + } + + private static ReadOnlyCollection<(string, string)> GetAggregationLines(string harFile) + { + List<(string, string)> results = []; + if (!File.Exists(harFile)) + throw new Exception(); + string lastUrl = string.Empty; + string text = "\"text\": \"{"; + string[] lines = File.ReadAllLines(harFile); + foreach (string line in lines) + { + if (line.Contains("\"url\": \"")) + lastUrl = line; + if (!line.Contains(text)) + continue; + if (!line.Contains("aggregations")) + continue; + if (lastUrl.Contains("search?asset=NONE")) + continue; + results.Add(new(lastUrl, line.Trim()[(text.Length - 1)..^1].Replace("\\\"", "\""))); + lastUrl = string.Empty; + } + return new(results); + } + } \ No newline at end of file