private object LoadReferenceName(EntityFieldChanges field, PropertyInfo property) { Type refType = GetReferenceType(property); if (refType != null) { object refId = field.NewValue; if (property.PropertyType == typeof(Guid?)) { refId = ((Guid?)refId).Value; } var getMethod = _dataService.GetType().GetMethod(nameof(_dataService.GetById)).MakeGenericMethod(refType); var refEntity = getMethod.Invoke(_dataService, new[] { refId }); return(refEntity?.ToString()); } return(null); }
private List <EntityFieldChanges> GetFieldChanges(EntityEntry entity) { var fieldChanges = new List <EntityFieldChanges>(); var fields = entity.Properties.Where(x => x.IsModified || (entity.State == EntityState.Added && x.CurrentValue != default)) .ToList(); foreach (var field in fields) { var fieldChange = new EntityFieldChanges { FieldName = field.Metadata.Name, OldValue = field.OriginalValue, NewValue = field.CurrentValue }; fieldChanges.Add(fieldChange); } return(fieldChanges); }