From d098eb6cb5a865bb932c728d46986da1733f477f Mon Sep 17 00:00:00 2001 From: AhmedElrakhawy <106417327+AhmedElrakhawy@users.noreply.github.com> Date: Sat, 12 Oct 2024 19:31:21 +0300 Subject: [PATCH 1/2] a single variation not return issue fixed VariationBinder was not return the variation id if it was a single value --- .../Binding/VariationsBinder.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/VirtoCommerce.XCatalog.Core/Binding/VariationsBinder.cs b/src/VirtoCommerce.XCatalog.Core/Binding/VariationsBinder.cs index 85efb20..251f970 100644 --- a/src/VirtoCommerce.XCatalog.Core/Binding/VariationsBinder.cs +++ b/src/VirtoCommerce.XCatalog.Core/Binding/VariationsBinder.cs @@ -12,9 +12,15 @@ public virtual object BindModel(SearchDocument searchDocument) { var fieldName = BindingInfo.FieldName; - return searchDocument.TryGetValue(fieldName, out var value) && value is object[] objs - ? objs.Select(x => (string)x).ToList() + return searchDocument.TryGetValue(fieldName, out var value) + ? value switch + { + object[] objs => objs.Select(x => (string)x).ToList(), + string str => new List { str }, + _ => Enumerable.Empty().ToList() + } : Enumerable.Empty().ToList(); + } } } From acd8e7f5096f1ae468cc0971d345e652f1d2fae9 Mon Sep 17 00:00:00 2001 From: Konstantin Savosteev Date: Thu, 17 Oct 2024 11:20:28 +0200 Subject: [PATCH 2/2] fix: refactor --- .../Binding/VariationsBinder.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/VirtoCommerce.XCatalog.Core/Binding/VariationsBinder.cs b/src/VirtoCommerce.XCatalog.Core/Binding/VariationsBinder.cs index 251f970..a35800d 100644 --- a/src/VirtoCommerce.XCatalog.Core/Binding/VariationsBinder.cs +++ b/src/VirtoCommerce.XCatalog.Core/Binding/VariationsBinder.cs @@ -12,15 +12,16 @@ public virtual object BindModel(SearchDocument searchDocument) { var fieldName = BindingInfo.FieldName; - return searchDocument.TryGetValue(fieldName, out var value) + var result = searchDocument.TryGetValue(fieldName, out var value) ? value switch - { - object[] objs => objs.Select(x => (string)x).ToList(), - string str => new List { str }, - _ => Enumerable.Empty().ToList() - } - : Enumerable.Empty().ToList(); + { + object[] objs => objs.Select(x => (string)x).ToList(), + string str => [str], + _ => Enumerable.Empty().ToList() + } + : Enumerable.Empty().ToList(); + return result; } } }