public MongoDbBucketSet(IMongoDbContext context, IDbSetOptions options)
        {
            Check.NotNull(context, nameof(context));
            Context = context;

            if (options is BucketSetOptions bucketOptions)
            {
                if (bucketOptions.BucketSize < 1)
                {
                    throw new ArgumentException($"Invalid bucket size of {bucketOptions.BucketSize}");
                }
                BucketSize = bucketOptions.BucketSize;

                var property = EntityMapping.GetOrCreateDefinition(typeof(TSubEntity)).GetProperty(bucketOptions.EntityTimeProperty);
                if (property == null)
                {
                    throw new ArgumentException($"Property {bucketOptions.EntityTimeProperty} doesn't exist on bucket item.");
                }

                if (property.PropertyType != typeof(DateTime))
                {
                    throw new ArgumentException($"Property {bucketOptions.EntityTimeProperty} on bucket item isn't of type DateTime");
                }

                EntityTimeProperty = property;
            }
            else
            {
                throw new ArgumentException("Invalid DbSet options supplied", nameof(options));
            }
        }
Exemplo n.º 2
0
 public MongoDbBucketSet(IDbSetOptions options)
 {
     if (options is BucketSetOptions bucketOptions)
     {
         if (bucketOptions.BucketSize < 1)
         {
             throw new ArgumentException($"Invalid bucket size of {bucketOptions.BucketSize}");
         }
         BucketSize = bucketOptions.BucketSize;
     }
     else
     {
         throw new ArgumentException("Invalid DbSet options supplied", nameof(options));
     }
 }
 protected virtual IMongoDbSet OnDbSetCreation(PropertyInfo property, IDbSetOptions dbSetOptions)
 {
     return(DbSetInitializer.CreateDbSet(property.PropertyType, this, dbSetOptions));
 }