Exemplo n.º 1
0
 public CollectionService(
     ICollectionInitializer initializer,
     ICollectionResolver <TContext> resolver,
     IDatabaseCollectionProvider <TContext> provider)
 {
     _initializer = initializer ?? throw new ArgumentNullException(nameof(initializer));
     _resolver    = resolver ?? throw new ArgumentNullException(nameof(resolver));
     _provider    = provider ?? throw new ArgumentNullException(nameof(provider));
 }
Exemplo n.º 2
0
        public IDatabaseCollection <TItem> GetCollection <TItem>(IDatabaseCollectionProvider <TContext> collectionProvider, string collectionId, Type collectionItemType)
        {
            //collection item type and actual requested item type is the same
            if (collectionItemType == typeof(TItem))
            {
                return(collectionProvider.GetCollection <TItem, TItem>(collectionId));
            }

            //requested item type is derived from collection item type
            //TODO: cache
            var getCollectionMethod        = ReflectionUtil.GetGenericMethod(collectionProvider.GetType(), "GetCollection", BindingFlags.Instance | BindingFlags.Public, 2, 1);
            var genericGetCollectionMethod = getCollectionMethod.MakeGenericMethod(typeof(TItem), collectionItemType);

            return((IDatabaseCollection <TItem>)genericGetCollectionMethod.Invoke(collectionProvider, new object[] { collectionId }));
        }
Exemplo n.º 3
0
        public IDatabaseCollection <TItem> GetCollection <TItem>(IDatabaseCollectionProvider <TContext> collectionProvider)
        {
            var collectionInfo = GetCollectionInfo <TItem>();

            return(GetCollection <TItem>(collectionProvider, collectionInfo.CollectionId, collectionInfo.CollectionItemType));
        }
Exemplo n.º 4
0
 public DatabaseCollection(string collectionName, DatabaseCollectionOptions options)
 {
     _options  = options;
     _provider = CreateProviderInstance(collectionName, options);
 }