@@ -273,13 +273,7 @@ private async Task CopyCharacter(Character originalChar)
273273 continue ; // Это поле было удалено, следовательно его значение мы не переносим.
274274 }
275275
276- var value = originalFieldValue . Value ;
277-
278- if ( originalFieldValue . Field . HasValueList )
279- {
280- // Нам нужно смеппить старые значения на новые
281- value = string . Join ( "," , originalFieldValue . GetDropdownValues ( ) . Select ( x => VariantMapping [ x . Id ] . ProjectFieldVariantId . ToString ( ) ) ) ;
282- }
276+ var value = MapFieldValue ( originalFieldValue ) ;
283277 setFieldsRequest . Add ( newFieldId . ProjectFieldId , value ) ;
284278 }
285279 List < CharacterGroupIdentification > parentCharacterGroupIds = [ ..
@@ -304,6 +298,27 @@ private async Task CopyCharacter(Character originalChar)
304298
305299 }
306300
301+ private string ? MapFieldValue ( FieldWithValue originalFieldValue )
302+ {
303+ if ( ! originalFieldValue . Field . HasValueList )
304+ {
305+ return originalFieldValue . Value ;
306+ }
307+
308+ // Нам нужно смеппить старые значения на новые
309+ List < ProjectFieldVariantIdentification > values = [ ] ;
310+ foreach ( var originalValue in originalFieldValue . GetDropdownValues ( ) )
311+ {
312+ var newFieldValue = VariantMapping . GetValueOrDefault ( originalValue . Id ) ;
313+ if ( newFieldValue is not null ) // Если не нашли, значит этот вариант удалили, следовательно мы его не переносим
314+ {
315+ values . Add ( newFieldValue ) ;
316+ }
317+ }
318+
319+ return string . Join ( "," , values . Select ( x => x . ProjectFieldVariantId . ToString ( ) ) ) ;
320+ }
321+
307322 private async Task CopyPlot ( )
308323 {
309324 foreach ( var originalFolder in originalEntity . PlotFolders . Where ( c => c . IsActive ) )
0 commit comments