From 1fecc892d39deb622e445a97c02f33ecbf251600 Mon Sep 17 00:00:00 2001 From: Chomp Date: Sun, 12 Jan 2025 15:22:19 +0000 Subject: [PATCH] Expanded `PresetController` implementation --- Core/Controllers/PresetController.cs | 43 +++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/Core/Controllers/PresetController.cs b/Core/Controllers/PresetController.cs index dfe9e26b..4a947a4b 100644 --- a/Core/Controllers/PresetController.cs +++ b/Core/Controllers/PresetController.cs @@ -1,15 +1,56 @@ using Core.Annotations; +using Core.Helpers; +using Core.Models.Eft.Common; +using Core.Services; +using ILogger = Core.Models.Utils.ILogger; namespace Core.Controllers; [Injectable] public class PresetController { + private readonly ILogger _logger; + private readonly PresetHelper _presetHelper; + private readonly DatabaseService _databaseService; + + public PresetController( + ILogger logger, + PresetHelper presetHelper, + DatabaseService databaseService + ) + { + _logger = logger; + _presetHelper = presetHelper; + _databaseService = databaseService; + } + /// /// /// public void Initialize() { - return; // TODO: actually implement + var presets = _databaseService.GetGlobals().ItemPresets; + var reverse = new Dictionary>(); + foreach (var (id, preset) in presets) + { + if (id != preset.Id) + { + this._logger.Error( + $"Preset for template tpl: '{preset.Items[0].Template} {preset.Name}' has invalid key: ({id} != {preset.Id}). Skipping" + ); + + continue; + } + + var tpl = preset.Items.FirstOrDefault()?.Template; + if (!reverse.ContainsKey(tpl)) + { + reverse[tpl] = []; + } + reverse.TryGetValue(tpl, out var listToAddTo); + listToAddTo?.Add(preset.Id); + } + + this._presetHelper.HydratePresetStore(reverse); } }