Example #1
0
        public static TEntity CreateInstance <TEntity>(IEnumerable <IEntityEvent> events, object eventStoreEntity)
        {
            try
            {
                var entity = (TEntity)Activator.CreateInstance(typeof(TEntity), events);

                PropertiesMapper.Map(eventStoreEntity, entity);

                return(entity);
            }
            catch (MissingMethodException ex)
            {
                throw new SilverbackException(
                          $"The type {typeof(TEntity).Name} doesn't have a public constructor " +
                          "with a single parameter of type IEnumerable<IEntityEvent>.", ex);
            }
        }
Example #2
0
        public static TEntity CreateInstance <TEntity>(IReadOnlyCollection <IEntityEvent> events, object eventStoreEntity)
        {
            Check.NotEmpty(events, nameof(events));

            try
            {
                var entity = (TEntity)Activator.CreateInstance(typeof(TEntity), events);

                PropertiesMapper.Map(eventStoreEntity, entity);

                return(entity);
            }
            catch (MissingMethodException ex)
            {
                throw new EventSourcingException(
                          $"The type {typeof(TEntity).Name} doesn't have a public constructor " +
                          "with a single parameter of type IEnumerable<IEntityEvent>.",
                          ex);
            }
        }