From 9fff0541aea4206458111116e8e7c1b8ea2a1e9f Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Thu, 10 Oct 2024 10:30:46 -0700 Subject: [PATCH] Moved HelperInfinityQS.DisableMaxDuplicates to EAF --- Helpers/HelperInfinityQS.cs | 135 +----------------------------------- 1 file changed, 1 insertion(+), 134 deletions(-) diff --git a/Helpers/HelperInfinityQS.cs b/Helpers/HelperInfinityQS.cs index 2392159..00d0963 100644 --- a/Helpers/HelperInfinityQS.cs +++ b/Helpers/HelperInfinityQS.cs @@ -4,7 +4,6 @@ using System.Data; using System.Data.SqlClient; using System.Diagnostics; using System.Text; -using System.Text.Json; using System.Text.Json.Serialization; namespace File_Watcher.Helpers; @@ -28,47 +27,6 @@ internal static partial class HelperInfinityQS { } - private static string GetCommandText(InfinityQSConfiguration infinityQSConfiguration, Test test) - { // cSpell:disable - List results = []; - results.Add(" select min_se_sgrp, "); - results.Add(" max_se_sgrp, "); - results.Add(" max_se_prcs, "); - results.Add(" max_se_lot, "); - results.Add(" max_se_test, "); - results.Add(" max_se_val, "); - results.Add($" '{test.Name}' test, "); - results.Add(" dateadd(HH, -7, (dateadd(SS, convert(bigint, max_se_sgtm), '19700101'))) date_time, "); - results.Add(" count_se_sgtm "); - results.Add(" from ( "); - results.Add(" select "); - results.Add(" max(se.f_lot) max_se_lot, "); - results.Add(" max(se.f_val) max_se_val, "); - results.Add(" min(se.f_lot) min_se_lot, "); - results.Add(" min(se.f_val) min_se_val, "); - results.Add(" max(se.f_prcs) max_se_prcs, "); - results.Add(" max(se.f_sgrp) max_se_sgrp, "); - results.Add(" max(se.f_sgtm) max_se_sgtm, "); - results.Add(" max(se.f_test) max_se_test, "); - results.Add(" min(se.f_prcs) min_se_prcs, "); - results.Add(" min(se.f_sgrp) min_se_sgrp, "); - results.Add(" count(se.f_sgtm) count_se_sgtm "); - results.Add(" from [spcepiworld].[dbo].[sgrp_ext] se "); - results.Add(" where se.f_tsno = 1 "); - results.Add(" and se.f_val <> 0 "); - results.Add(" and se.f_flag = 0 "); - results.Add($" and se.f_test = {test.Value} "); - results.Add($" and se.f_sgtm > {infinityQSConfiguration.SubGroupTime} "); - results.Add(" group by se.f_sgtm, se.f_prcs, se.f_lot "); - results.Add(" ) qa "); - results.Add(" where qa.count_se_sgtm > 1 "); - results.Add(" and min_se_lot = max_se_lot "); - results.Add(" and min_se_val = max_se_val "); - results.Add(" and min_se_prcs = max_se_prcs "); - results.Add(" for json path "); - return string.Join(' ', results); - } // cSpell:enable - private static string GetCommandText(ReadOnlyCollection subGroups) { // cSpell:disable List results = []; @@ -91,94 +49,6 @@ internal static partial class HelperInfinityQS return stringBuilder; } - private static int? ExecuteNonQuery(InfinityQSConfiguration infinityQSConfiguration, string commandText) - { - int? result; - if (!string.IsNullOrEmpty(infinityQSConfiguration.ConnectionString)) - result = null; - else - { - using SqlConnection sqlConnection = new(infinityQSConfiguration.ConnectionString); - sqlConnection.Open(); - using SqlCommand sqlCommand = new(commandText, sqlConnection); - result = sqlCommand.ExecuteNonQuery(); - } - return result; - } - - private static void Disable(InfinityQSConfiguration infinityQSConfiguration, string checkFile, ReadOnlyCollection collection) - { - string commandText = GetCommandText(collection); - File.WriteAllText(checkFile, commandText); - _ = ExecuteNonQuery(infinityQSConfiguration, commandText); - } - - private static ReadOnlyCollection GetTests(InfinityQSConfiguration infinityQSConfiguration) - { - List results = new(infinityQSConfiguration.Tests); - if (File.Exists(infinityQSConfiguration.TestsFile)) - { - string json = File.ReadAllText(infinityQSConfiguration.TestsFile); - List distinct = infinityQSConfiguration.Tests.Select(l => l.Value).ToList(); - Test[]? tests = JsonSerializer.Deserialize(json, TestCollectionSourceGenerationContext.Default.TestArray); - if (tests is not null) - { - foreach (Test test in tests) - { - if (distinct.Contains(test.Value)) - continue; - distinct.Add(test.Value); - results.AddRange(tests); - } - } - } - return new(results); - } - - private static void DisableMaxDuplicates(AppSettings appSettings) - { - Record[]? records; - bool added; - string json; - string commandText; - StringBuilder result; - List collection = []; - ReadOnlyCollection tests = GetTests(appSettings.InfinityQSConfiguration); - if (!Directory.Exists(appSettings.InfinityQSConfiguration.DestinationDirectory)) - _ = Directory.CreateDirectory(appSettings.InfinityQSConfiguration.DestinationDirectory); - string checkFile = Path.Combine(appSettings.InfinityQSConfiguration.DestinationDirectory, ".sql"); - foreach (Test test in tests) - { - added = false; - if (File.Exists(checkFile)) - continue; - commandText = GetCommandText(appSettings.InfinityQSConfiguration, test); - result = GetForJsonPath(appSettings.InfinityQSConfiguration, commandText); - if (result.Length == 0) - continue; - records = JsonSerializer.Deserialize(result.ToString(), RecordCollectionSourceGenerationContext.Default.RecordArray); - if (records is null || records.Length < 1) - continue; - foreach (Record record in records) - { - if (collection.Contains(record.MaxSeSubgroup)) - continue; - if (!added) - added = true; - collection.Add(record.MaxSeSubgroup); - } - if (!added) - continue; - json = JsonSerializer.Serialize(records, RecordCollectionSourceGenerationContext.Default.RecordArray); - File.WriteAllText(Path.Combine(appSettings.InfinityQSConfiguration.DestinationDirectory, $"{DateTime.Now.Ticks}.json"), json); - Thread.Sleep(500); - if (collection.Count > 1000) - break; - } - if (collection.Count > 0) - Disable(appSettings.InfinityQSConfiguration, checkFile, new(collection)); - } - private static void RunMI() { #pragma warning disable CA1416 @@ -198,10 +68,7 @@ internal static partial class HelperInfinityQS internal static bool Select(AppSettings appSettings, ILogger logger) { logger.LogInformation(appSettings.Company); - if (string.IsNullOrEmpty(appSettings.InfinityQSConfiguration.ConnectionString)) - RunMI(); - else - DisableMaxDuplicates(appSettings); + RunMI(); return true; } } \ No newline at end of file