From 4858ee14c33d4cff09fe85d61ddb1d8208b0dee0 Mon Sep 17 00:00:00 2001 From: Sascha Woitschetzki Date: Fri, 25 Jun 2021 12:44:12 +0200 Subject: [PATCH 1/4] extract class ProductEqualityComparer --- Gremlin/GremlinData/DBClasses/DbHelper.cs | 21 +-------------- .../DBClasses/ProductEqualityComparer.cs | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 20 deletions(-) create mode 100644 Gremlin/GremlinData/DBClasses/ProductEqualityComparer.cs diff --git a/Gremlin/GremlinData/DBClasses/DbHelper.cs b/Gremlin/GremlinData/DBClasses/DbHelper.cs index 227168e..2e3e518 100644 --- a/Gremlin/GremlinData/DBClasses/DbHelper.cs +++ b/Gremlin/GremlinData/DBClasses/DbHelper.cs @@ -1920,6 +1920,7 @@ namespace Gremlin.GremlinData.DBClasses { return await Task.Run(() => ImportCustomDescriptionsFromCsv()); } + public static async Task UpdateProductsFromCsvAsync() { return await Task.Run(() => UpdateProductsFromCsv()); @@ -2032,24 +2033,4 @@ namespace Gremlin.GremlinData.DBClasses return new string(Enumerable.Repeat(chars, length).Select(s => s[random.Next(s.Length)]).ToArray()); } } - - public class ProductEqualityComparer : IEqualityComparer - { - public bool Equals(Product product1, Product product2) - { - return !((product1 != null || product2 != null) - && !(product1 != null && product2 != null - && product1.ProductNumber == product2.ProductNumber - && product1.OptionNumber == product2.OptionNumber - && product1.BreakRangeFrom == product2.BreakRangeFrom - && product1.BreakRangeTo == product2.BreakRangeTo)); - } - - public int GetHashCode(Product product) - { - StringBuilder sb = new(); - _ = sb.Append(product.ProductNumber).Append(product.OptionNumber).Append(product.BreakRangeFrom).Append(product.BreakRangeTo); - return sb.ToString().GetHashCode(); - } - } } diff --git a/Gremlin/GremlinData/DBClasses/ProductEqualityComparer.cs b/Gremlin/GremlinData/DBClasses/ProductEqualityComparer.cs new file mode 100644 index 0000000..d4ed993 --- /dev/null +++ b/Gremlin/GremlinData/DBClasses/ProductEqualityComparer.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using System.Text; +using Gremlin.GremlinData.EntityClasses; + +namespace Gremlin.GremlinData.DBClasses +{ + public class ProductEqualityComparer : IEqualityComparer + { + public bool Equals(Product product1, Product product2) + { + return !((product1 != null || product2 != null) + && !(product1 != null && product2 != null + && product1.ProductNumber == product2.ProductNumber + && product1.OptionNumber == product2.OptionNumber + && product1.BreakRangeFrom == product2.BreakRangeFrom + && product1.BreakRangeTo == product2.BreakRangeTo)); + } + + public int GetHashCode(Product product) + { + StringBuilder sb = new(); + _ = sb.Append(product.ProductNumber).Append(product.OptionNumber).Append(product.BreakRangeFrom).Append(product.BreakRangeTo); + return sb.ToString().GetHashCode(); + } + } +} From 24f350def8c812015465eb118c49ace04d9fbd1d Mon Sep 17 00:00:00 2001 From: Sascha Woitschetzki Date: Fri, 25 Jun 2021 12:48:11 +0200 Subject: [PATCH 2/4] move declaration to top --- Gremlin/GremlinData/DBClasses/DbHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gremlin/GremlinData/DBClasses/DbHelper.cs b/Gremlin/GremlinData/DBClasses/DbHelper.cs index 2e3e518..57edc90 100644 --- a/Gremlin/GremlinData/DBClasses/DbHelper.cs +++ b/Gremlin/GremlinData/DBClasses/DbHelper.cs @@ -21,6 +21,7 @@ namespace Gremlin.GremlinData.DBClasses { private static readonly DateTime FarInTheFuture = DateTime.Parse("2050-12-31t00:00:00.000000z", CultureInfo.CurrentCulture); private static readonly ParallelOptions parallelOptions = new() { MaxDegreeOfParallelism = Environment.ProcessorCount * 2 }; + private static readonly Random random = new(); public static bool CheckDatabaseConnection(string connectionString) { @@ -2026,7 +2027,6 @@ namespace Gremlin.GremlinData.DBClasses } } - private static readonly Random random = new(); public static string RandomString(int length) { const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; From 1fdacf9251b4c7dcb88a8ea7ae04779d9b26a2f8 Mon Sep 17 00:00:00 2001 From: Sascha Woitschetzki Date: Fri, 25 Jun 2021 12:50:09 +0200 Subject: [PATCH 3/4] usage of more threads in parallel --- Gremlin/GremlinData/DBClasses/DbHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gremlin/GremlinData/DBClasses/DbHelper.cs b/Gremlin/GremlinData/DBClasses/DbHelper.cs index 57edc90..e20445c 100644 --- a/Gremlin/GremlinData/DBClasses/DbHelper.cs +++ b/Gremlin/GremlinData/DBClasses/DbHelper.cs @@ -20,7 +20,7 @@ namespace Gremlin.GremlinData.DBClasses internal static class DbHelper { private static readonly DateTime FarInTheFuture = DateTime.Parse("2050-12-31t00:00:00.000000z", CultureInfo.CurrentCulture); - private static readonly ParallelOptions parallelOptions = new() { MaxDegreeOfParallelism = Environment.ProcessorCount * 2 }; + private static readonly ParallelOptions parallelOptions = new() { MaxDegreeOfParallelism = Environment.ProcessorCount * 4 }; private static readonly Random random = new(); public static bool CheckDatabaseConnection(string connectionString) From d89c0c2ab437d491d095359398d7da3040098c2e Mon Sep 17 00:00:00 2001 From: Sascha Woitschetzki Date: Fri, 25 Jun 2021 12:53:02 +0200 Subject: [PATCH 4/4] test --- Gremlin/GremlinUtilities/FileIO.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Gremlin/GremlinUtilities/FileIO.cs b/Gremlin/GremlinUtilities/FileIO.cs index bcab2c3..a85753a 100644 --- a/Gremlin/GremlinUtilities/FileIO.cs +++ b/Gremlin/GremlinUtilities/FileIO.cs @@ -12,7 +12,6 @@ namespace Gremlin.GremlinUtilities internal static class FileIO { public static string ReadResource(string name) - //Source and credit to: https://stackoverflow.com/questions/3314140/how-to-read-embedded-resource-text-file { Assembly assembly = Assembly.GetExecutingAssembly();