Beispiel #1
0
        public override TEntity Add(TEntity entity)
        {
            var id = EntityOperation.GetSurrogateKey(entity);

            if (EntityOperation <TEntity> .IsValidSurrogateKey(id))
            {
                var change = default(Change);
                if (Changes.TryGetValue(id, out change))
                {
                    if (change.Entity != entity)
                    {
                        ThrowAttachingMoreThanOneEntityException();
                    }
                }
                else
                {
                    var nonkeyValues = EntityOperation.NonkeyValues(entity);
                    change = new Change(entity, id, nonkeyValues, ChangeType.Add);
                    Changes.Add(id, change);
                }
            }
            else
            {
                AddedEntities.Add(entity);
            }
            return(entity);
        }
Beispiel #2
0
        public IEntity CreateEntity(string prettyName = "")
        {
            ContentEntity added = new ContentEntity(EntityIdGenerator.Next(), prettyName);

            AddedEntities.Add(added);
            return(added);
        }
Beispiel #3
0
        /// <summary>
        /// Helper for tests to create snapshots with entities within more collections than just
        /// AddedEntities.
        /// </summary>
        internal IEntity CreateEntity(EntityAddTarget target, string prettyName = "")
        {
            ContentEntity added = new ContentEntity(EntityIdGenerator.Next(), prettyName);

            if (target == EntityAddTarget.Added)
            {
                AddedEntities.Add(added);
            }
            else if (target == EntityAddTarget.Active)
            {
                ActiveEntities.Add(added);
            }
            else
            {
                RemovedEntities.Add(added);
            }

            return(added);
        }
Beispiel #4
0
 public override T Add(T entity)
 {
     AddedEntities.Add(entity);
     _contentCollection.Add(entity);
     return(entity);
 }