예제 #1
0
        public MongoDBCrudPageableRepositoryAsync(AutumnSettings settings,
                                                  AutumnMongoDBSettings mongoDbSettings) :
            base(settings)
        {
            _filterDefinitionBuilder = new FilterDefinitionBuilder <TEntity>();
            var client         = new MongoClient(mongoDbSettings.ConnectionString);
            var database       = client.GetDatabase(mongoDbSettings.Database);
            var collectionInfo = mongoDbSettings.CollectionInfos[typeof(TEntity)];

            _collection = database.GetCollection <TEntity>(collectionInfo.Name);
        }
예제 #2
0
        /// <summary>
        /// populate database for sample
        /// </summary>
        /// <param name="mongoDbSettings"></param>
        public async void populateDatabase(AutumnMongoDBSettings mongoDbSettings)
        {
            var client   = new MongoClient(mongoDbSettings.ConnectionString);
            var database = client.GetDatabase(mongoDbSettings.Database);

            #region Customers

            var collection = database.GetCollection <CustomerV4>("customer");
            var count      = await collection.CountAsync(e => e.Id != null);

            if (count == 0)
            {
                var custormerHydrator = new Hydrator <CustomerV4>()
                                        .Ignoring(x => x.Id)
                                        .With(x => x.Address, new Hydrator <Address>()
                                              .WithAmericanCity(a => a.City)
                                              .WithAmericanPostalCode(a => a.PostalCode, 80)
                                              .WithAmericanAddress(a => a.Street)
                                              .WithAmericanState(a => a.State))
                                        .With(x => x.BirthDate, new BirthDateGenerator())
                                        .With(x => x.Active, new ActiveGenerator())
                                        .WithEmailAddress(x => x.Email)
                                        .WithLastName(x => x.LastName)
                                        .WithFirstName(x => x.FirstName)
                                        .WithAlphaNumeric(x => x.Account, 10)
                                        .WithDouble(x => x.Credit, 0, 10000)
                                        .WithDouble(x => x.Credit, 0, 10000);

                var customers = custormerHydrator.GetList(500);
                await collection.InsertManyAsync(customers);
            }

            #endregion

            #region Articles

            var collection2 = database.GetCollection <ArticleInfoV2>("article");
            count = await collection2.CountAsync(e => e.Id != null);

            if (count == 0)
            {
                var articleHydrator = new Hydrator <ArticleInfoV2>()
                                      .Ignoring(x => x.Id)
                                      .WithText(x => x.Content, 500)
                                      .WithAlphaNumeric(x => x.Title, 30)
                                      .WithInteger(x => x.Score, 0, 100)
                                      .WithDate(x => x.PublishDate, DateTime.Now.AddDays(-600), DateTime.Now.Date);

                var article = articleHydrator.GetList(100);
                await collection2.InsertManyAsync(article);
            }

            #endregion
        }