From 65b49defc9054fd0e2c6bfa2759268ff03ac027d Mon Sep 17 00:00:00 2001 From: bluextx Date: Sat, 11 Jan 2025 07:04:53 +0300 Subject: [PATCH] Refactored loose loot processor to use dependency injection --- .../MultithreadSteppedDumpProcessor.cs | 8 +- .../Processor/FileProcessor/FileProcessor.cs | 12 +- .../Process/Processor/LooseLootProcessor.cs | 279 ------------------ .../LooseLootProcessor/ILooseLootProcessor.cs | 17 ++ .../LooseLootProcessor/LooseLootProcessor.cs | 239 +++++++++++++++ source/LootDumpProcessor/Program.cs | 5 +- 6 files changed, 275 insertions(+), 285 deletions(-) delete mode 100644 source/LootDumpProcessor/Process/Processor/LooseLootProcessor.cs create mode 100644 source/LootDumpProcessor/Process/Processor/v2/LooseLootProcessor/ILooseLootProcessor.cs create mode 100644 source/LootDumpProcessor/Process/Processor/v2/LooseLootProcessor/LooseLootProcessor.cs diff --git a/source/LootDumpProcessor/Process/Processor/DumpProcessor/MultithreadSteppedDumpProcessor.cs b/source/LootDumpProcessor/Process/Processor/DumpProcessor/MultithreadSteppedDumpProcessor.cs index f665f8d..3c51d58 100644 --- a/source/LootDumpProcessor/Process/Processor/DumpProcessor/MultithreadSteppedDumpProcessor.cs +++ b/source/LootDumpProcessor/Process/Processor/DumpProcessor/MultithreadSteppedDumpProcessor.cs @@ -5,6 +5,7 @@ using LootDumpProcessor.Model.Input; using LootDumpProcessor.Model.Output.StaticContainer; using LootDumpProcessor.Model.Processing; using LootDumpProcessor.Process.Processor.v2.AmmoProcessor; +using LootDumpProcessor.Process.Processor.v2.LooseLootProcessor; using LootDumpProcessor.Process.Processor.v2.StaticContainersProcessor; using LootDumpProcessor.Process.Processor.v2.StaticLootProcessor; using LootDumpProcessor.Serializers.Json; @@ -16,7 +17,7 @@ namespace LootDumpProcessor.Process.Processor.DumpProcessor; public class MultithreadSteppedDumpProcessor( IStaticLootProcessor staticLootProcessor, IStaticContainersProcessor staticContainersProcessor, - IAmmoProcessor ammoProcessor + IAmmoProcessor ammoProcessor, ILooseLootProcessor looseLootProcessor ) : IDumpProcessor { private readonly IStaticLootProcessor _staticLootProcessor = @@ -28,6 +29,9 @@ public class MultithreadSteppedDumpProcessor( private readonly IAmmoProcessor _ammoProcessor = ammoProcessor ?? throw new ArgumentNullException(nameof(ammoProcessor)); + private readonly ILooseLootProcessor _looseLootProcessor = + looseLootProcessor ?? throw new ArgumentNullException(nameof(looseLootProcessor)); + private static IJsonSerializer _jsonSerializer = JsonSerializerFactory.GetInstance(); private static readonly List Runners = new(); @@ -203,7 +207,7 @@ public class MultithreadSteppedDumpProcessor( if (LoggerFactory.GetInstance().CanBeLogged(LogLevel.Info)) LoggerFactory.GetInstance().Log("Processing loose loot distribution", LogLevel.Info); // Loose loot distribution - var looseLootDistribution = LooseLootProcessor.CreateLooseLootDistribution( + var looseLootDistribution = _looseLootProcessor.CreateLooseLootDistribution( dumpProcessData.MapCounts, dumpProcessData.LooseLootCounts ); diff --git a/source/LootDumpProcessor/Process/Processor/FileProcessor/FileProcessor.cs b/source/LootDumpProcessor/Process/Processor/FileProcessor/FileProcessor.cs index 3d9af88..76bfb3f 100644 --- a/source/LootDumpProcessor/Process/Processor/FileProcessor/FileProcessor.cs +++ b/source/LootDumpProcessor/Process/Processor/FileProcessor/FileProcessor.cs @@ -1,14 +1,20 @@ using LootDumpProcessor.Logger; using LootDumpProcessor.Model; using LootDumpProcessor.Model.Processing; +using LootDumpProcessor.Process.Processor.v2.LooseLootProcessor; using LootDumpProcessor.Process.Processor.v2.StaticLootProcessor; using LootDumpProcessor.Storage; namespace LootDumpProcessor.Process.Processor.FileProcessor; -public class FileProcessor(IStaticLootProcessor staticLootProcessor) : IFileProcessor +public class FileProcessor(IStaticLootProcessor staticLootProcessor, ILooseLootProcessor looseLootProcessor) + : IFileProcessor { - private readonly IStaticLootProcessor _staticLootProcessor = staticLootProcessor ?? throw new ArgumentNullException(nameof(staticLootProcessor)); + private readonly IStaticLootProcessor _staticLootProcessor = + staticLootProcessor ?? throw new ArgumentNullException(nameof(staticLootProcessor)); + + private readonly ILooseLootProcessor _looseLootProcessor = + looseLootProcessor ?? throw new ArgumentNullException(nameof(looseLootProcessor)); public PartialData Process(BasicInfo parsedData) { @@ -47,7 +53,7 @@ public class FileProcessor(IStaticLootProcessor staticLootProcessor) : IFileProc LogLevel.Debug ); dumpData.Containers = _staticLootProcessor.PreProcessStaticLoot(staticLoot); - dumpData.LooseLoot = LooseLootProcessor.PreProcessLooseLoot(looseLoot); + dumpData.LooseLoot = _looseLootProcessor.PreProcessLooseLoot(looseLoot); DataStorageFactory.GetInstance().Store(dumpData); } diff --git a/source/LootDumpProcessor/Process/Processor/LooseLootProcessor.cs b/source/LootDumpProcessor/Process/Processor/LooseLootProcessor.cs deleted file mode 100644 index d3db3f2..0000000 --- a/source/LootDumpProcessor/Process/Processor/LooseLootProcessor.cs +++ /dev/null @@ -1,279 +0,0 @@ -using LootDumpProcessor.Logger; -using LootDumpProcessor.Model; -using LootDumpProcessor.Model.Output; -using LootDumpProcessor.Model.Output.LooseLoot; -using LootDumpProcessor.Model.Processing; -using LootDumpProcessor.Storage; -using LootDumpProcessor.Storage.Collections; -using LootDumpProcessor.Utils; -using NumSharp; - -namespace LootDumpProcessor.Process.Processor; - -public static class LooseLootProcessor -{ - public static PreProcessedLooseLoot PreProcessLooseLoot(List