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); }
/// <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 }