2020-09-26 20:49:09 +02:00

25 lines
930 B
C#

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<string, object> 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);
}
}
}
}