using System; using System.Collections.Generic; using System.Linq; using UserService.Infrastructure.DataModels; namespace UserService.Infrastructure { public static class NodeExtensions { public static void MapFields(this Member member, Dictionary values) { if (member == null) throw new ArgumentNullException(nameof(member)); if (values == null) throw new ArgumentNullException(nameof(values)); var properties = member.GetType().GetProperties(); foreach (var (key, value) in values) { var propertyInfo = properties.FirstOrDefault(x => x.Name == key); if (propertyInfo == null) continue; var currentValue = propertyInfo.GetValue(member); if(Equals(currentValue, value)) continue; propertyInfo.SetValue(member, value); } } } }