25 lines
930 B
C#
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);
|
|
}
|
|
}
|
|
}
|
|
} |