示例#1
0
        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);
        }