Example #1
0
        public static EntityReference <TProperty> DecorateEntityReference <TEntity, TProperty>(this TEntity entity, int propertyID, EntityReference <TProperty> reference)
            where TEntity : EntityObject, IWithHistory
            where TProperty : EntityObject, IEntityExtend
        {
            if (entity.CollectionChanges == null)
            {
                // TODO: throw
            }

            ChangeMonitorBase monitor = entity.CollectionChanges.ChangeMonitors.Find(x => Object.ReferenceEquals(x.TargetEnd, reference));

            if (monitor == null)
            {
                monitor = new ReferenceChangeMonitor <TEntity, TProperty>(entity, propertyID, reference);
                entity.CollectionChanges.ChangeMonitors.Add(monitor);
            }

            return(reference);
        }
        public ChangeEntry(ChangeMonitorBase monitor, EntityObject source, EntityObject target, ChangeActionKind action)
        {
            if (monitor == null)
            {
                throw new ArgumentNullException("monitor");
            }
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }

            this.Monitor = monitor;
            this.Source  = source;
            this.Target  = target;
            this.Action  = action;
        }