using System.Text.Json; using GB5Shared.DTO.Ice; using IceImportDAL.DTO.IceImportPipeline; namespace IceImportBLL.AddonFieldAccumulator; public class AddonFieldAccumulator : IAddonFieldAccumulator { public const string AddonFieldKey = "FeAddon"; public void Apply(MappedEntityRowDTO row, IReadOnlyList<(IceMapDetailsDTO Detail, object? Value)> resolvedFields) { var addonFields = resolvedFields .Where(f => !string.IsNullOrWhiteSpace(f.Detail.IceMapDetailsAddonFields)) .ToList(); if (addonFields.Count == 0) return; var bag = new Dictionary(StringComparer.OrdinalIgnoreCase); foreach (var (detail, value) in addonFields) bag[detail.IceMapDetailsAddonFields!.Trim()] = value; row.Fields[AddonFieldKey] = JsonSerializer.Serialize(bag); } }