public LargeDocumentStore(IDocumentDbAccessProvider dbAccessProvider) : base(dbAccessProvider, false)
            {
                var config = new DocumentStoreConfigBuilder("LargeStore");

                var largeDocumentType = config.AddDocument("LargeDocument");

                var attachmentDocumentType = config.AddDocument("AttachmentDocument");
                var attachmentType         = attachmentDocumentType.AddAttachment("Attachment");

                _largeMapping = config.AddDocumentMapping <LargeDocument>(largeDocumentType.Name)
                                .SetIdMapper(x => x.Id.ToString())
                                .SetPartitionMapper(x => x.Id.ToString())
                                .Finish();

                _smallMapping = config.AddDocumentMapping <SmallDocumentWithLargeAttachment>(attachmentDocumentType.Name)
                                .SetIdMapper(x => x.Id.ToString())
                                .SetPartitionMapper(x => x.Id.ToString())
                                .Finish();

                _attachmentMapping = _smallMapping.AddAttachmentMapping <LargeDocument>(attachmentType.Name)
                                     .Finish();

                _config = config.Finish();
                _client = CreateStoreLogic(DbAccess, _config);

                DbAccess.ConfigRegistry.RegisterStoreConfigSource(this);
            }
 protected static IVersionedDocumentStoreClient CreateStoreLogic(
     IDocumentDbAccess dbAccess,
     DocumentStoreConfig config,
     IDocumentMetadataSource metadataSource)
 {
     return(new VersionedDocumentStoreClient(GetDbAccessImplementation(dbAccess), config, metadataSource));
 }
 /// <summary>
 /// Initialises a new instance of the <see cref="VersionedDocumentStoreClient"/> class.
 /// </summary>
 /// <param name="dbAccess">The db access interface.</param>
 /// <param name="config">The store config.</param>
 /// <param name="metadataSource">The document metadata source.</param>
 public VersionedDocumentStoreClient(
     DocumentDbAccess dbAccess,
     DocumentStoreConfig config,
     IDocumentMetadataSource metadataSource)
     : base(dbAccess, config, new[] { typeof(CreateDocumentStoredProcedure) })
 {
     MetadataSource = metadataSource ?? new NullDocumentMetadataSource();
 }
        protected static IVersionedDocumentStorePurgeClient CreatePurgeLogic(
            IDocumentDbAccess dbAccess,
            DocumentStoreConfig config)
        {
            var dbAccessImpl = GetDbAccessImplementation(dbAccess);
            var queryClient  = new VersionedDocumentQueryClient(dbAccessImpl, config);

            return(new VersionedDocumentStorePurgeClient(dbAccessImpl, config, queryClient));
        }
Example #5
0
        /// <summary>
        /// Initialises a new instance of the <see cref="VersionedDocumentStorePurgeClient"/> class.
        /// </summary>
        /// <param name="dbAccess">The db access interface.</param>
        /// <param name="config">The store config.</param>
        /// <param name="queryClient">The query client.</param>
        public VersionedDocumentStorePurgeClient(
            DocumentDbAccess dbAccess,
            DocumentStoreConfig config,
            VersionedDocumentQueryClient queryClient)
            : base(dbAccess, config, new [] { typeof(PurgeDocumentStoredProcedure) })
        {
            if (queryClient == null)
            {
                throw new ArgumentNullException(nameof(queryClient));
            }

            _queryClient = queryClient;
        }
Example #6
0
        protected static IVersionedDocumentStoreClient CreateStoreLogic(
            IDocumentDbAccess dbAccess,
            DocumentStoreConfig config,
            IDocumentMetadataSource metadataSource)
        {
            var documentDbAccess = dbAccess as DocumentDbAccess;

            if (documentDbAccess == null)
            {
                throw new InvalidOperationException("Document db access interface is not a supported type");
            }

            return(new VersionedDocumentStoreClient(documentDbAccess, config, metadataSource));
        }
Example #7
0
        public OrderStore(
            IDocumentDbAccessProvider dbAccessProvider,
            IDocumentMetadataSource metadataSource) : base(dbAccessProvider)
        {
            var config = new DocumentStoreConfigBuilder("Orders");

            var orderDocumentType = config.AddDocument("Order").Finish();

            _orderMapping = config.AddDocumentMapping <Order>(orderDocumentType.DocumentName)
                            .SetIdMapper(x => x.Id.ToString())
                            .SetPartitionMapper(x => x.Id.ToString())
                            .Finish();

            _config = config.Finish();
            _client = CreateStoreLogic(DbAccess, _config, metadataSource);
        }
            public FlowerStore(IDocumentDbAccessProvider dbAccessProvider) : base(dbAccessProvider, false)
            {
                var config = new DocumentStoreConfigBuilder("Flowers");

                var documentType = config.AddDocument("Daisy").Finish();

                _mapping = config.AddDocumentMapping <Daisy>(documentType.DocumentName)
                           .SetIdMapper(x => x.Id.ToString())
                           .SetPartitionMapper(x => x.Id.ToString())
                           .Finish();

                _config = config.Finish();
                _client = CreateStoreLogic(DbAccess, _config);

                DbAccess.ConfigRegistry.RegisterStoreConfigSource(this);
            }
            public DocumentStore(IDocumentDbAccessProvider dbAccessProvider) : base(dbAccessProvider)
            {
                var config = new DocumentStoreConfigBuilder("Documents");

                var documentType  = config.AddDocument("Document1");
                var document2Type = config.AddDocument("Document2");

                _documentMapping = config.AddDocumentMapping <Document1>(documentType.Name)
                                   .SetIdMapper(x => x.Id.ToString())
                                   .SetPartitionMapper(x => x.Id.ToString())
                                   .Finish();

                _document2Mapping = config.AddDocumentMapping <Document2>(document2Type.Name)
                                    .SetIdMapper(x => x.Id.ToString())
                                    .SetPartitionMapper(x => x.Id.ToString())
                                    .Finish();

                _config = config.Finish();
                _client = CreateStoreLogic(DbAccess, _config);
            }
            public EmailStore(IDocumentDbAccessProvider dbAccessProvider) : base(dbAccessProvider, false)
            {
                var config = new DocumentStoreConfigBuilder("EmailClient");

                var documentType   = config.AddDocument("Email");
                var attachmentType = documentType.AddAttachment("EmailAttachment");

                _mapping = config.AddDocumentMapping <Email>(documentType.Name)
                           .SetIdMapper(x => x.Id.ToString())
                           .SetPartitionMapper(x => x.Id.ToString())
                           .Finish();

                _attachmentMapping = _mapping.AddAttachmentMapping <EmailAttachment>(attachmentType.Name)
                                     .Finish();

                _config = config.Finish();
                _client = CreateStoreLogic(DbAccess, _config);

                DbAccess.ConfigRegistry.RegisterStoreConfigSource(this);
            }
        protected DocumentStoreClient(DocumentDbAccess dbAccess, DocumentStoreConfig config, IEnumerable <Type> storedProcedures)
        {
            if (dbAccess == null)
            {
                throw new ArgumentNullException(nameof(dbAccess));
            }
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            _dbAccess = dbAccess;
            _config   = config;

            _collectionUri = UriFactory.CreateDocumentCollectionUri(dbAccess.DbConfig.DatabaseId, dbAccess.DbConfig.CollectionName);

            if (storedProcedures != null)
            {
                _storedProcedures = storedProcedures.ToDictionary(x => x, GetStoredProcedureName);
            }
        }
Example #12
0
        public FlowerStore(
            IDocumentDbAccessProvider dbAccessProvider,
            IDocumentMetadataSource metadataSource) : base(dbAccessProvider, false)
        {
            var config = new DocumentStoreConfigBuilder("Flowers");

            var daisyDocumentType = config.AddDocument("Daisy").Finish();
            var roseDocumentType  = config.AddDocument("Rose").Finish();

            _daisyMapping = config.AddDocumentMapping <Daisy>(daisyDocumentType.DocumentName)
                            .SetIdMapper(x => x.Id.ToString())
                            .SetPartitionMapper(x => x.Id.ToString())
                            .Finish();

            _gardenMapping = config.AddDocumentMapping <Garden>(roseDocumentType.DocumentName)
                             .SetIdMapper(x => x.Id.ToString())
                             .SetPartitionMapper(x => x.Id.ToString())
                             .Finish();

            _config = config.Finish();
            _client = CreateStoreLogic(DbAccess, _config, metadataSource);
        }
            public FruitStore(IDocumentDbAccessProvider dbAccessProvider, IDocumentMetadataSource metadataSource)
                : base(dbAccessProvider, false)
            {
                var config = new DocumentStoreConfigBuilder("Fruit");

                var appleDocumentType = config.AddDocument("Apple").Finish();
                var pearDocumentType  = config.AddDocument("Pear").Finish();

                _appleMapping = config.AddDocumentMapping <Apple>(appleDocumentType.DocumentName)
                                .SetIdMapper(x => x.Id.ToString())
                                .SetPartitionMapper(x => x.Id.ToString())
                                .Finish();

                _pearMapping = config.AddDocumentMapping <Pear>(pearDocumentType.DocumentName)
                               .SetIdMapper(x => x.Id.ToString())
                               .SetPartitionMapper(x => x.Id.ToString())
                               .Finish();

                _config = config.Finish();
                _client = CreateStoreLogic(DbAccess, _config, metadataSource);

                DbAccess.ConfigRegistry.RegisterStoreConfigSource(this);
            }
 protected DocumentQueryClient(
     DocumentDbAccess dbAccess,
     DocumentStoreConfig config,
     IEnumerable <Type> storedProcedures) : base(dbAccess, config, storedProcedures)
 {
 }
Example #15
0
 protected static IUnversionedDocumentStoreClient CreateStoreLogic(
     IDocumentDbAccess dbAccess,
     DocumentStoreConfig config)
 {
     return(new UnversionedDocumentStoreClient(GetDbAccessImplementation(dbAccess), config));
 }
 /// <summary>
 /// Initialises a new instance of the <see cref="VersionedDocumentStoreClient"/> class.
 /// </summary>
 /// <param name="dbAccess">The db access interface.</param>
 /// <param name="config">The store config.</param>
 public VersionedDocumentStoreClient(DocumentDbAccess dbAccess, DocumentStoreConfig config)
     : this(dbAccess, config, null)
 {
 }
Example #17
0
 /// <summary>
 /// Initialises a new instance of the <see cref="VersionedDocumentQueryClient"/> class.
 /// </summary>
 /// <param name="dbAccess">The db access interface.</param>
 /// <param name="config">The store config.</param>
 public VersionedDocumentQueryClient(DocumentDbAccess dbAccess, DocumentStoreConfig config)
     : base(dbAccess, config, null)
 {
 }