public RavenProjectionSubSystem(IEntityTypeManager entityTypeManager,
                                 IEventMessageFactory eventMessageFactory, IServiceLocator serviceLocator,
                                 IRavenCrudRepository repository) : base(entityTypeManager, eventMessageFactory)
 {
     this.serviceLocator = serviceLocator;
     this.repository     = repository;
 }
        /// <summary>
        /// Recupera os dados que precisam ser serializados.
        /// </summary>
        /// <param name="entityTypeManager"></param>
        /// <param name="entity"></param>
        /// <returns></returns>
        private static IEnumerable <KeyValuePair <string, object> > GetSerializeData(IEntityTypeManager entityTypeManager, IEntity entity)
        {
            entity.Require("entity").NotNull();
            var type       = entity.GetType();
            var loader     = entityTypeManager.GetLoader(type);
            var children   = loader.GetChildrenAccessors().Where(f => f is IEntityPropertyAccessor).Select(f => (IEntityPropertyAccessor)f).ToArray();
            var links      = loader.GetLinksAccessors().Where(f => f is IEntityPropertyAccessor).Select(f => (IEntityPropertyAccessor)f).ToArray();
            var references = loader.GetReferences().Where(f => f is IEntityPropertyAccessor).Select(f => (IEntityPropertyAccessor)f).ToArray();

            foreach (var prop in type.GetProperties())
            {
                if (prop.CanRead && prop.GetIndexParameters().Length == 0 && !prop.GetCustomAttributes(true).Any(f => f is System.Xml.Serialization.XmlIgnoreAttribute) && !children.Any(f => f.PropertyName == prop.Name) && !links.Any(f => f.PropertyName == prop.Name) && !references.Any(f => f.PropertyName == prop.Name))
                {
                    object value = null;
                    try
                    {
                        value = prop.GetValue(entity, null);
                    }
                    catch (System.Reflection.TargetInvocationException ex)
                    {
                        throw ex.InnerException;
                    }
                    yield return(new KeyValuePair <string, object>(prop.Name, value));
                }
            }
            foreach (var i in children.Concat(links).Concat(references))
            {
                yield return(new KeyValuePair <string, object>(i.PropertyName, i.Get(entity)));
            }
        }
Exemple #3
0
        public ActionResult Index(string appName)
        {
            IEntityTypeManager typeManager = DependencyResolver.Current.GetService <IEntityTypeManager>();
            DbContext          context     = DependencyResolver.Current.GetService <DbContext>();
            IEnumerable <Type> typesInApp  = typeManager.GetTypesInNamespace(appName);
            //var a = context.GetType().GetProperties().Select(pi => pi.PropertyType);
            //var b = a.Where(t => t.IsGenericType && t.GetGenericTypeDefinition()==typeof(DbSet<>));
            //var c = b.Select(t => t.GetGenericArguments().Single());
            IEnumerable <Type> typesInContext = context.GetType().GetProperties().Select(pi => pi.PropertyType)
                                                .Where(t => t.IsGenericType && t.GetGenericTypeDefinition() == typeof(DbSet <>)).Select(t => t.GetGenericArguments().Single());
            List <string> typeNames = typesInApp.Intersect(typesInContext).Select(t => t.Name).ToList();

            if (typeNames == null || !typeNames.Any())
            {
                Redirection redirection = Redirection.OpenRedirection(HttpContext, "ApplicationNotFound", "Error", new RouteValueDictionary()
                {
                    { "appName", appName }
                });
                return(redirection.GetResult());
            }
            TextInfo             ti      = CultureInfo.CurrentCulture.TextInfo;
            ApplicationDetailsVM details = new ApplicationDetailsVM
            {
                AppName   = ti.ToTitleCase(appName),
                TypeNames = typeNames
            };

            return(View(details));
        }
        public CrudAggregateStoreTests()
        {
            crudRepository     = new InMemoryCrudRepository();
            entityTypeManager  = Substitute.For <IEntityTypeManager>();
            publishEventBuffer = Substitute.For <IPublishEventBuffer>();

            domainClasses = new List <DomainClassInfo>()
            {
                new DomainClassInfo(TestAggregateClassId, null, typeof(TestAggregate))
            };

            entityTypeManager.GetClassInfoByClassId(Guid.Empty)
            .ReturnsForAnyArgs(ci => domainClasses.Single(x => x.Id == ci.Arg <Guid>()));
            entityTypeManager.TryGetClassInfoByClrType(null)
            .ReturnsForAnyArgs(ci => domainClasses.SingleOrDefault(x => x.ClrType == ci.Arg <Type>()));
            entityTypeManager.GetClassInfoByClrType(null)
            .ReturnsForAnyArgs(ci => domainClasses.Single(x => x.ClrType == ci.Arg <Type>()));

            eventMessageFactory = Substitute.For <IEventMessageFactory>();
            eventMessageFactory.CreateMessageAsync(null).ReturnsForAnyArgs(ci =>
            {
                var @event       = ci.ArgAt <IEvent>(0);
                Type messageType = typeof(EventMessageDraft <>).MakeGenericType(@event.GetType());
                IEventMessageDraft messageDraft = (IEventMessageDraft)messageType.GetConstructor(new[] { @event.GetType() }).Invoke(new[] { @event });
                messageDraft.SetMetadata("TestKey", "TestValue");
                return(messageDraft);
            }); // TODO something more lightweight?


            sut = new CrudAggregateStore(crudRepository, entityTypeManager, publishEventBuffer, eventMessageFactory);
        }
        public EventSourcedAggregateFactoryTests()
        {
            eventStreamUpgrader = Substitute.For <IEventStreamUpgrader>();
            eventStreamUpgrader.UpgradeStream(null, null).ReturnsForAnyArgs(ci =>
            {
                var stream            = ci.Arg <IEnumerable <IEventMessage <DomainAggregateEvent> > >();
                var aggregateMetadata = ci.Arg <IReadOnlyDictionary <string, string> >();
                return(eventStreamUpgradeFunc(stream, aggregateMetadata));
            });

            DomainClassInfo[] domainClasses = new[]
            {
                new DomainClassInfo(entity1ClassId, null, typeof(MyEntity)),
                new DomainClassInfo(entity2ClassId, null, typeof(MyEntity2))
            };

            entityTypeManager = Substitute.For <IEntityTypeManager>();
            entityTypeManager.GetClassInfoByClassId(Guid.Empty)
            .ReturnsForAnyArgs(ci => domainClasses.Single(x => x.Id == ci.Arg <Guid>()));
            entityTypeManager.TryGetClassInfoByClrType(null)
            .ReturnsForAnyArgs(ci => domainClasses.SingleOrDefault(x => x.ClrType == ci.Arg <Type>()));
            entityTypeManager.GetClassInfoByClrType(null)
            .ReturnsForAnyArgs(ci => domainClasses.Single(x => x.ClrType == ci.Arg <Type>()));

            sut = new EventSourcedAggregateFactory(eventStreamUpgrader, new EntityFactory(), entityTypeManager);
        }
Exemple #6
0
        public MediaHelper(
            CoreInDbContext dbContext,
            ITaxonomyHelper taxonomyHelper,
            IEntityHelper <FileEntity, FileEntityDetail> entityHelper,
            IHostingEnvironment environment, IStringLocalizer <Language> stringLocalizer,
            IEntityTypeManager entityTypeManager,
            IEntityTaxonomyRelationHelper <FileEntityTaxonomy> entityTaxonomyRelationHelper,
            IHttpContextAccessor context
            )
        {
            _dbContext = dbContext;

            _taxonomyHelper = taxonomyHelper;

            _entityHelper = entityHelper;
            _entityHelper.SetContext(_dbContext);

            _entityTypeManager = entityTypeManager;

            _environment     = environment;
            _stringLocalizer = stringLocalizer;

            _entityTaxonomyRelationHelper = entityTaxonomyRelationHelper;
            _context = context;
        }
Exemple #7
0
 public CrudAggregateStoreFactory(Func <ICrudRepository> crudRepositoryFunc,
                                  IEntityTypeManager entityTypeManager, IEventMessageFactory eventMessageFactory)
 {
     this.crudRepositoryFunc  = crudRepositoryFunc;
     this.entityTypeManager   = entityTypeManager;
     this.eventMessageFactory = eventMessageFactory;
 }
Exemple #8
0
 public EFCoreCrudAggregateStore(ICrudRepository crudRepository, IEntityTypeManager entityTypeManager,
                                 IPublishEventBuffer publishEventBuffer, IEventMessageFactory eventMessageFactory,
                                 IEFCoreTransactionCoordinator transactionCoordinator)
     : base(crudRepository, entityTypeManager, publishEventBuffer, eventMessageFactory)
 {
     this.transactionCoordinator = transactionCoordinator;
     transactionCoordinator.AddTransactionParticipant(this);
 }
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="entityLoader">Loader.</param>
 /// <param name="queryable">Consulta que será realizado.</param>
 /// <param name="sourceContext">Contexto de origem dos dados.</param>
 /// <param name="uiContext">Contexto de interface com o usuário.</param>
 /// <param name="entityTypeManager">Gerenciador dos tipos de entidas.</param>
 /// <returns></returns>
 public GetEntitiesEnumerable(EntityLoader <TEntity1, Model> entityLoader, Query.Queryable queryable, Colosoft.Query.ISourceContext sourceContext, string uiContext, IEntityTypeManager entityTypeManager)
 {
     _entityLoader      = entityLoader;
     _queryable         = queryable;
     _sourceContext     = sourceContext;
     _uiContext         = uiContext;
     _entityTypeManager = entityTypeManager;
 }
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="enumerable">Instancia do Enumerable que será adaptada.</param>
 /// <param name="childInfo"></param>
 /// <param name="childLoader">Loader da entidade do filho.</param>
 /// <param name="entityTypeManager">Instancia do gerenciador dos tipos de entidades.</param>
 /// <param name="sourceContext">Instancia do contexto de origem.</param>
 /// <param name="uiContext">Contexto de interface com o usuário.</param>
 public EntityChildEnumerable(IEnumerable <IEntity> enumerable, IEntityLoaderChildInfo childInfo, IEntityLoader childLoader, IEntityTypeManager entityTypeManager, Query.ISourceContext sourceContext, string uiContext) : base(enumerable, null, null)
 {
     _childInfo         = childInfo;
     _childLoader       = childLoader;
     _entityTypeManager = entityTypeManager;
     _sourceContext     = sourceContext;
     _uiContext         = uiContext;
 }
Exemple #11
0
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="queryable">Consulta associada.</param>
 /// <param name="entityLoader"></param>
 /// <param name="uiContext"></param>
 /// <param name="entityTypeManager"></param>
 /// <param name="parentResult"></param>
 /// <param name="exceptions"></param>
 public PrepareNestedQueriesResult(Query.Queryable queryable, IEntityLoader entityLoader, string uiContext, IEntityTypeManager entityTypeManager, IList <EntityLoaderCreatorArgs> parentResult, Queue <Exception> exceptions)
 {
     _queryable         = queryable;
     _entityLoader      = entityLoader;
     _uiContext         = uiContext;
     _entityTypeManager = entityTypeManager;
     _parentResult      = parentResult;
     _exceptions        = exceptions;
 }
 public EventSourcedAggregateRepository(IEventStore eventStore,
                                        IEntityTypeManager entityTypeManager,
                                        IPublishEventBuffer publishEventBuffer,
                                        IRepositoryFilter[] repositoryFilters,
                                        IEventMessageFactory eventMessageFactory,
                                        IEntityFactory entityFactory)
     : base(eventStore, entityTypeManager, publishEventBuffer, repositoryFilters, eventMessageFactory, entityFactory)
 {
 }
Exemple #13
0
        public EntityTypeManager(IEntityTypeManager entityTypeManager, UserManager <User> userManager)
        {
            var upperUser = userManager.FindByNameAsync(AppKey.SupperAdminUserName).Result;

            Project = entityTypeManager.RegisterEntityType(
                new EntityType {
                Name = "project"
            },
                new EntityTypeDetail[] {
                new EntityTypeDetail {
                    Field = "title", Value = "Project", Language = "en-US"
                },
                new EntityTypeDetail {
                    Field = "title", Value = "Dự Án", Language = "vi-VN"
                }
            }, upperUser, false);

            Construction = entityTypeManager.RegisterEntityType(
                new EntityType {
                Name = "construction"
            },
                new EntityTypeDetail[] {
                new EntityTypeDetail {
                    Field = "title", Value = "Construction", Language = "en-US"
                },
                new EntityTypeDetail {
                    Field = "title", Value = "Công trình", Language = "vi-VN"
                },

                new EntityTypeDetail {
                    Field = "group", Value = "Construction", Language = "en-US"
                },
                new EntityTypeDetail {
                    Field = "group", Value = "Công trình", Language = "vi-VN"
                },
            }, upperUser);

            Collection = entityTypeManager.RegisterEntityType(
                new EntityType {
                Name = "collection"
            },
                new EntityTypeDetail[] {
                new EntityTypeDetail {
                    Field = "title", Value = "Collection", Language = "en-US"
                },
                new EntityTypeDetail {
                    Field = "title", Value = "Bộ sưu tập", Language = "vi-VN"
                },

                new EntityTypeDetail {
                    Field = "group", Value = "Collection", Language = "en-US"
                },
                new EntityTypeDetail {
                    Field = "group", Value = "Bộ sưu tập", Language = "vi-VN"
                },
            }, upperUser);
        }
Exemple #14
0
 public EFCoreCrudAggregateStoreFactory(Func <IEFCoreCrudRepository> crudRepositoryFunc,
                                        IEntityTypeManager entityTypeManager, IEventMessageFactory eventMessageFactory,
                                        IEFCoreTransactionCoordinator transactionCoordinator)
     : base(crudRepositoryFunc, entityTypeManager, eventMessageFactory)
 {
     this.crudRepositoryFunc     = crudRepositoryFunc;
     this.entityTypeManager      = entityTypeManager;
     this.eventMessageFactory    = eventMessageFactory;
     this.transactionCoordinator = transactionCoordinator;
 }
 /// <summary>
 /// Cria a instancia com o suporte para estratégia de vinculação.
 /// </summary>
 /// <param name="entityTypeManager">Gerenciador dos tipos de entidades.</param>
 /// <param name="entityLoader">Loader da entidade.</param>
 /// <param name="queryable"></param>
 /// <param name="countExpression"></param>
 /// <param name="isLazy">Identifica se é para fazer uma carga tardia.</param>
 /// <param name="castHandler">Instancia do manipulador que vai realizar o cast do item do resultado.</param>
 /// <param name="uiContext">Contexto de interface com o usuário.</param>
 public QueryableEntityVirtualListLoader(IEntityTypeManager entityTypeManager, IEntityLoader entityLoader, Colosoft.Query.Queryable queryable, string countExpression, bool isLazy, Func <object, TEntity> castHandler, string uiContext)
 {
     _entityTypeManager = entityTypeManager;
     _entityLoader      = entityLoader;
     _queryable         = queryable;
     _countExpression   = countExpression;
     _isLazy            = isLazy;
     _uiContext         = uiContext;
     _castHandler       = castHandler;
 }
 protected EventSourcedAggregateRepository(IEventStore eventStore,
                                           IEntityTypeManager entityTypeManager,
                                           IPublishEventBuffer publishEventBuffer,
                                           IRepositoryFilter[] repositoryFilters,
                                           IEventMessageFactory eventMessageFactory,
                                           IEntityFactory entityFactory,
                                           Dictionary <Guid, IEventSourcedAggregateRoot> aggregates)
     : base(eventStore, entityTypeManager, publishEventBuffer, repositoryFilters, eventMessageFactory, entityFactory, aggregates)
 {
 }
Exemple #17
0
 public CrudAggregateStore(ICrudRepository crudRepository,
     IEntityTypeManager entityTypeManager,
     IPublishEventBuffer publishEventBuffer,
     IEventMessageFactory eventMessageFactory)
 {
     this.crudRepository = crudRepository;
     this.entityTypeManager = entityTypeManager;
     this.publishEventBuffer = publishEventBuffer;
     this.eventMessageFactory = eventMessageFactory;
 }
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="dataModel"></param>
 /// <param name="recordKey"></param>
 /// <param name="children"></param>
 /// <param name="linkContainer"></param>
 /// <param name="references">Container das referências.</param>
 /// <param name="uiContext"></param>
 /// <param name="typeManager"></param>
 public EntityLoaderCreatorArgs(Data.IModel dataModel, Query.RecordKey recordKey, EntityLoaderChildContainer children, IEntityLoaderLinksContainer linkContainer, EntityLoaderReferenceContainer references, string uiContext, IEntityTypeManager typeManager)
 {
     _dataModel         = dataModel;
     _recordKey         = recordKey;
     _children          = children;
     _links             = linkContainer;
     _references        = references;
     _uiContext         = uiContext;
     _entityTypeManager = typeManager;
 }
Exemple #19
0
 public EventSourcedAggregateStore(IEventStore eventStore, IEntityTypeManager entityTypeManager,
                                   IPublishEventBuffer publishEventBuffer, IRepositoryFilter[] repositoryFilters,
                                   IEventMessageFactory eventMessageFactory, IEventSourcedAggregateFactory eventSourcedAggregateFactory)
 {
     this.eventStore                   = eventStore;
     this.entityTypeManager            = entityTypeManager;
     this.publishEventBuffer           = publishEventBuffer;
     this.repositoryFilters            = repositoryFilters;
     this.eventMessageFactory          = eventMessageFactory;
     this.eventSourcedAggregateFactory = eventSourcedAggregateFactory;
 }
Exemple #20
0
        public EFCoreEventSourcedAggregateStore(IEventStore eventStore, IEntityTypeManager entityTypeManager,
                                                IPublishEventBuffer publishEventBuffer, IRepositoryFilter[] repositoryFilters,
                                                IEventMessageFactory eventMessageFactory, IEventSourcedAggregateFactory eventSourcedAggregateFactory,
                                                IEFCoreTransactionCoordinator transactionCoordinator)
            : base(eventStore, entityTypeManager, publishEventBuffer, repositoryFilters, eventMessageFactory,
                   eventSourcedAggregateFactory)
        {
            this.transactionCoordinator = transactionCoordinator;

            transactionCoordinator.AddTransactionParticipant(this);
        }
Exemple #21
0
        public AppEntityTypes(IEntityTypeManager entityTypeManager)
        {
            var entityTypeGroup = "Menu Entity";

            TypeMenu = entityTypeManager.RegisterEntityType("Menu", new Dictionary <string, string> {
                { "title", "Menu" }, { "group", entityTypeGroup }
            });
            TypeMenuItem = entityTypeManager.RegisterEntityType("MenuItem", new Dictionary <string, string> {
                { "title", "Menu Item" }, { "group", entityTypeGroup }
            });
        }
Exemple #22
0
 protected EventSourcedRepository(IEventStore eventStore,
                                  IEntityTypeManager entityTypeManager,
                                  IPublishEventBuffer publishEventBuffer,
                                  IRepositoryFilter[] repositoryFilters,
                                  IEventMessageFactory eventMessageFactory,
                                  IEntityFactory entityFactory,
                                  Dictionary <Guid, TBase> aggregates)
     : this(eventStore, entityTypeManager, publishEventBuffer, repositoryFilters, eventMessageFactory, entityFactory)
 {
     this.aggregates = aggregates;
 }
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="entityLoader">Instancia do loader da entidade associada.</param>
 /// <param name="entityTypeManager">Instancia do gerenciador dos tipos de entidades.</param>
 /// <param name="sourceContext">Contexto de origem.</param>
 /// <param name="uiContext">Contexto de interface com o usuário.</param>
 /// <param name="typeName">Nome do associado com o observer.</param>
 /// <param name="collection">Coleção que sera observada.</param>
 public BusinessQueryResultChangedObserver(IEntityLoader entityLoader, IEntityTypeManager entityTypeManager, Query.ISourceContext sourceContext, string uiContext, Colosoft.Reflection.TypeName typeName, System.Collections.IList collection) : base(collection)
 {
     _entityLoader      = entityLoader;
     _entityTypeManager = entityTypeManager;
     _sourceContext     = sourceContext;
     _uiContext         = uiContext;
     _typeName          = typeName;
     if (Colosoft.Query.RecordObserverManager.Instance.IsEnabled)
     {
         Colosoft.Query.RecordObserverManager.Instance.Register(_typeName, this);
     }
 }
Exemple #24
0
        public SagaRepository(ICommandBus commandBus,
                              IRepository repository,
                              ISagaMetadataRepository metadataRepository,
                              IEntityTypeManager entityTypeManager,
                              IUnitOfWork unitOfWork)
        {
            this.commandBus        = commandBus;
            this.repository        = repository;
            this.entityTypeManager = entityTypeManager;
            MetadataRepository     = metadataRepository;

            unitOfWork.AddInnerTransaction(new SagaRepositoryTransaction(this));
        }
Exemple #25
0
 /// <summary>
 /// Construtor padrão da classe
 /// </summary>
 /// <param name="entity">Entidade associada.</param>
 /// <param name="entityTypeManager">Gerenciador dos tipos de entidades.</param>
 /// <param name="validationManager">Instancia do gerenciador de validações.</param>
 /// <param name="propertyChangeNotify">Método que receberá notificação de evento</param>
 /// <param name="culture"></param>
 public InstanceState(IEntity entity, IEntityTypeManager entityTypeManager, IValidationManager validationManager, System.ComponentModel.PropertyChangedEventHandler propertyChangeNotify, System.Globalization.CultureInfo culture)
 {
     entity.Require("entity").NotNull();
     validationManager.Require("validationManager").NotNull();
     propertyChangeNotify.Require("propertyChangeNotify").NotNull();
     _specializedList      = new Dictionary <string, Colosoft.Reflection.TypeName>();
     _entityTypeManager    = entityTypeManager;
     _validationManager    = validationManager;
     _entity               = entity;
     _propertyChangeNotify = propertyChangeNotify;
     _propertyAttributes   = new Dictionary <string, IStatebleItem>();
     LoadTypeSettings(culture);
     _entity.PropertyChanged += EntityPropertyChanged;
 }
Exemple #26
0
        public TaxonomyHelper(IServiceProvider serviceProvider, CoreInDbContext dbContext, IEntityTypeManager entityTypeManager, IEntityHelper <TaxonomyType, TaxonomyTypeDetail> taxTypeEntityHelper, IEntityHelper <Taxonomy, TaxonomyDetail> entityHelper)
        {
            _serviceProvider = serviceProvider;

            _dbContext = dbContext;

            _entityTypeManager = entityTypeManager;
            _entityTypeManager.SetContext(dbContext);

            _taxTypeEntityHelper = taxTypeEntityHelper;
            _taxTypeEntityHelper.SetContext(dbContext);

            _taxEntityHelper = entityHelper;
            _taxEntityHelper.SetContext(dbContext);
        }
 protected override EventSourcedRepository <IEventSourcedAggregateRoot> CloneWithFilters(
     IEventStore eventStore,
     IEntityTypeManager entityTypeManager,
     IPublishEventBuffer publishEventBuffer,
     IRepositoryFilter[] repositoryFilters,
     IEventMessageFactory eventMessageFactory,
     Dictionary <Guid, IEventSourcedAggregateRoot> aggregates)
 {
     return(new EventSourcedAggregateRepository(eventStore,
                                                entityTypeManager,
                                                publishEventBuffer,
                                                repositoryFilters,
                                                eventMessageFactory,
                                                EntityFactory,
                                                aggregates));
 }
Exemple #28
0
 protected virtual EventSourcedRepository <TBase> CloneWithFilters(
     IEventStore eventStore,
     IEntityTypeManager entityTypeManager,
     IPublishEventBuffer publishEventBuffer,
     IRepositoryFilter[] repositoryFilters,
     IEventMessageFactory eventMessageFactory,
     Dictionary <Guid, TBase> aggregates)
 {
     return(new EventSourcedRepository <TBase>(eventStore,
                                               entityTypeManager,
                                               publishEventBuffer,
                                               repositoryFilters,
                                               eventMessageFactory,
                                               EntityFactory,
                                               aggregates));
 }
Exemple #29
0
        public SagaRepositoryTests()
        {
            unitOfWork = Substitute.For <IUnitOfWork>();
            unitOfWork.When(x => x.AddInnerTransaction(Arg.Any <ITransaction>())).Do(ci => uowInnerTransaction = ci.ArgAt <ITransaction>(0));

            commandBus             = Substitute.For <ICommandBus>();
            sagaMetadataRepository = Substitute.For <ISagaMetadataRepository>();
            entityTypeManager      = Substitute.For <IEntityTypeManager>();
            repository             = Substitute.ForPartsOf <FakeRepository>();
            entityTypeManager      = Substitute.For <IEntityTypeManager>();

            entityTypeManager.GetClassInfoByClassId(saga1ClassId)
            .Returns(new DomainClassInfo(saga1ClassId, null, typeof(Saga1)));

            entityTypeManager.GetClassInfoByClrType(typeof(Saga1))
            .Returns(new DomainClassInfo(saga1ClassId, null, typeof(Saga1)));

            sut = new SagaRepository(commandBus, repository, sagaMetadataRepository, entityTypeManager, unitOfWork);
        }
Exemple #30
0
        protected Entity(Model dataModel, string uiContext, bool initialize, IEntityTypeManager entityTypeManager) : base(uiContext, entityTypeManager)
        {
            Initialize(initialize);
            if (dataModel == null)
            {
                SetDataModel(new Model());
                InitializeModel(DataModel);
            }
            else
            {
                SetDataModel(dataModel);
            }
            var entityType = this.GetType();

            if (TypeManager.HasUid(entityType) && Uid == 0)
            {
                Uid = TypeManager.GenerateInstanceUid(entityType);
            }
            UpdateRecordKey();
        }