コード例 #1
0
 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));
        }