public virtual void Copy(AggregateRoot newAggregateRoot)
        {
            if (newAggregateRoot == null)
            {
                throw new ArgumentNullException("newAggregateRoot");
            }

            if (!newAggregateRoot.IsModified)
            {
                return;
            }

            if (newAggregateRoot.IsIdModified)
            {
                Id = newAggregateRoot.Id;
            }

            if (newAggregateRoot.IsUpdatedOnModified)
            {
                UpdatedOn = newAggregateRoot.UpdatedOn;
            }
        }
        public static void UpdateAggregateRootWithFakeData(AggregateRoot aggregateRoot)
        {
            if (aggregateRoot == null)
            {
                throw new ArgumentNullException("aggregateRoot");
            }

            aggregateRoot.Id = "1234";
            aggregateRoot.UpdatedOn = new DateTime(2015, 5, 2);
        }