public BaseBatchSeedSelector(IQueryableRepository <TEntity> seedQueryableRepository, int batchSize, ILogger logger) { ContractUtility.Requires <ArgumentNullException>(seedQueryableRepository.IsNotNull(), "seedQueryableRepository cannot be null"); ContractUtility.Requires <ArgumentOutOfRangeException>(batchSize > 0, "batchSize should be greater than 0"); ContractUtility.Requires <ArgumentNullException>(logger.IsNotNull(), "logger cannot be null"); _seedQueryableRepository = seedQueryableRepository; _batchSize = batchSize; _logger = logger ?? LoggerFactory.GetLogger(LoggerType.Default); }
public static IFluentQueryRepository SetUpQueryRepository <TEntity>(IQueryableRepository <TEntity> queryRepository) where TEntity : class, IQueryableAggregateRoot { ContractUtility.Requires <ArgumentNullException>(queryRepository.IsNotNull(), "queryRepository instance cannot be null"); var queryRepositoryList = new List <dynamic> { queryRepository }; return(new FluentQueryRepository(null, queryRepositoryList, null)); }
public IFluentQueryRepository SetUpQueryRepository <TEntity>(IQueryableRepository <TEntity> queryRepository) where TEntity : class, IQueryableAggregateRoot { ContractUtility.Requires <ArgumentNullException>(queryRepository.IsNotNull(), "queryRepository instance cannot be null"); string queryableRepositoryTypeName = typeof(IQueryableRepository <>).Name; dynamic existingQueryRepository = _repositoriesList.SingleOrDefault(x => x != null && x.GetType().GetGenericTypeDefinition().GetInterface(queryableRepositoryTypeName) != null && x.GetType().GenericTypeArguments[0] == typeof(TEntity)); ContractUtility.Requires <ArgumentNullException>(existingQueryRepository == null, string.Format("Query Repository for {0} has already been set up", typeof(TEntity).Name)); if (_unitOfWorkData != null && _unitOfWorkData.UnitOfWork != null) { ((dynamic)queryRepository).SetUnitOfWork(_unitOfWorkData.UnitOfWork); } _repositoriesList.Add(queryRepository); return(new FluentQueryRepository(_unitOfWorkData, _repositoriesList, _operationsQueue)); }