From d843eb57f4ca70c0cde379e4c59e3531b7e449ad Mon Sep 17 00:00:00 2001 From: Grigoriy Abashkin Date: Sun, 8 Sep 2024 20:52:04 +0500 Subject: [PATCH 1/5] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D1=82=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA?= =?UTF-8?q?=D1=83=20mongodb=20=D0=B2=20compose.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NoSQL/compose.yml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/NoSQL/compose.yml b/NoSQL/compose.yml index bbb0d00f0..ea3e13d97 100644 --- a/NoSQL/compose.yml +++ b/NoSQL/compose.yml @@ -8,6 +8,17 @@ services: - 5433:5432 environment: - POSTGRES_PASSWORD=docker + #Administration Db mongo + promocode-factory-administration-db-mongo: + image: "mongo:latest" + container_name: 'promocode-factory-administration-db-mongo' + restart: always + ports: + - 27018:27017 + environment: + - MONGO_INITDB_ROOT_USERNAME=root + - MONGO_INITDB_ROOT_PASSWORD=docker + #Administration Api promocode-factory-administration-api: build: src/Pcf.Administration/ @@ -16,9 +27,11 @@ services: ports: - "8091:8080" environment: - - "ConnectionStrings:PromocodeFactoryAdministrationDb=Host=promocode-factory-administration-db;Database=promocode_factory_administration_db;Username=postgres;Password=docker" + #- "ConnectionStrings:PromocodeFactoryAdministrationDb=Host=promocode-factory-administration-db;Database=promocode_factory_administration_db;Username=postgres;Password=docker" + - "ConnectionStrings:PromocodeFactoryAdministrationDbMongo=mongodb://root:docker@promocode-factory-administration-db-mongo:27018/promocode_factory_administration_db_mongo" depends_on: - - promocode-factory-administration-db + #- promocode-factory-administration-db + - promocode-factory-administration-db-mongo #ReceivingFromPartner Db promocode-factory-receiving-from-partner-db: From 3c3e1143133b9f7da4f616bd9ed7b11f59520a94 Mon Sep 17 00:00:00 2001 From: Grigoriy Abashkin Date: Sun, 8 Sep 2024 22:09:38 +0500 Subject: [PATCH 2/5] =?UTF-8?q?=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=B0=D0=B8?= =?UTF-8?q?=D0=B2=D0=B0=D0=B5=D1=82=20mongo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pcf.Administration.DataAccess.csproj | 1 + .../Repositories/MongoRepository.cs | 68 +++++++++++++++++++ .../Pcf.Administration.WebHost.csproj | 2 + .../Pcf.Administration.WebHost/Startup.cs | 8 ++- .../appsettings.json | 6 +- 5 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Repositories/MongoRepository.cs diff --git a/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Pcf.Administration.DataAccess.csproj b/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Pcf.Administration.DataAccess.csproj index 9c871c5bc..fa0f8748b 100644 --- a/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Pcf.Administration.DataAccess.csproj +++ b/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Pcf.Administration.DataAccess.csproj @@ -6,6 +6,7 @@ + diff --git a/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Repositories/MongoRepository.cs b/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Repositories/MongoRepository.cs new file mode 100644 index 000000000..226d587b8 --- /dev/null +++ b/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Repositories/MongoRepository.cs @@ -0,0 +1,68 @@ +using Pcf.Administration.Core.Abstractions.Repositories; +using Pcf.Administration.Core.Domain; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Text; +using System.Threading.Tasks; +using MongoDB.Driver; +using MongoDB.Bson; + +namespace Pcf.Administration.DataAccess.Repositories +{ + public class MongoRepository + : IRepository + where T : BaseEntity + { + private readonly IMongoDatabase _db; + private readonly IMongoCollection _collection; + + public MongoRepository(IMongoDatabase db) + { + _db = db; + _collection = db.GetCollection(typeof(T).Name); + } + + public async Task> GetAllAsync() + { + var entities = await _collection.Find("{}").ToListAsync(); + return entities; + } + + public async Task GetByIdAsync(Guid id) + { + var entity = await _collection.Find(x => x.Id == id).FirstOrDefaultAsync(); + return entity; + } + public Task> GetRangeByIdsAsync(List ids) + { + throw new NotImplementedException(); + } + + public Task GetFirstWhere(Expression> predicate) + { + throw new NotImplementedException(); + } + + public Task> GetWhere(Expression> predicate) + { + throw new NotImplementedException(); + } + + public async Task AddAsync(T entity) + { + await _collection.InsertOneAsync(entity); + } + public async Task UpdateAsync(T entity) + { + await _collection.FindOneAndReplaceAsync(x => x.Id == entity.Id, entity); + } + + public Task DeleteAsync(T entity) + { + throw new NotImplementedException(); + } + + } +} \ No newline at end of file diff --git a/NoSQL/src/Pcf.Administration/Pcf.Administration.WebHost/Pcf.Administration.WebHost.csproj b/NoSQL/src/Pcf.Administration/Pcf.Administration.WebHost/Pcf.Administration.WebHost.csproj index e9e4c80f3..bf5e5a2e6 100644 --- a/NoSQL/src/Pcf.Administration/Pcf.Administration.WebHost/Pcf.Administration.WebHost.csproj +++ b/NoSQL/src/Pcf.Administration/Pcf.Administration.WebHost/Pcf.Administration.WebHost.csproj @@ -16,6 +16,8 @@ + + diff --git a/NoSQL/src/Pcf.Administration/Pcf.Administration.WebHost/Startup.cs b/NoSQL/src/Pcf.Administration/Pcf.Administration.WebHost/Startup.cs index 97d5b3057..cd0756636 100644 --- a/NoSQL/src/Pcf.Administration/Pcf.Administration.WebHost/Startup.cs +++ b/NoSQL/src/Pcf.Administration/Pcf.Administration.WebHost/Startup.cs @@ -16,6 +16,7 @@ using Pcf.Administration.DataAccess.Repositories; using Pcf.Administration.Core.Domain.Administration; using IConfiguration = Microsoft.Extensions.Configuration.IConfiguration; +using MongoDB.Driver; namespace Pcf.Administration.WebHost { @@ -34,7 +35,8 @@ public void ConfigureServices(IServiceCollection services) { services.AddControllers().AddMvcOptions(x=> x.SuppressAsyncSuffixInActionNames = false); - services.AddScoped(typeof(IRepository<>), typeof(EfRepository<>)); + //services.AddScoped(typeof(IRepository<>), typeof(EfRepository<>)); + services.AddScoped(typeof(IRepository<>), typeof(MongoRepository<>)); services.AddScoped(); services.AddDbContext(x => { @@ -44,6 +46,10 @@ public void ConfigureServices(IServiceCollection services) x.UseLazyLoadingProxies(); }); + services.AddSingleton(new MongoClient(Configuration.GetConnectionString("PromocodeFactoryAdministrationDbMongo")) + .GetDatabase(Configuration.GetSection("mongoDbName").Value) + ); + services.AddOpenApiDocument(options => { options.Title = "PromoCode Factory Administration API Doc"; diff --git a/NoSQL/src/Pcf.Administration/Pcf.Administration.WebHost/appsettings.json b/NoSQL/src/Pcf.Administration/Pcf.Administration.WebHost/appsettings.json index 704547c62..201956480 100644 --- a/NoSQL/src/Pcf.Administration/Pcf.Administration.WebHost/appsettings.json +++ b/NoSQL/src/Pcf.Administration/Pcf.Administration.WebHost/appsettings.json @@ -6,8 +6,10 @@ "Microsoft.Hosting.Lifetime": "Information" } }, - "ConnectionStrings":{ - "PromocodeFactoryAdministrationDb":"Host=localhost;Database=promocode_factory_administration_db;Username=postgres;Password=docker;Port=5433" + "mongoDbName": "promocode_factory_administration_db_mongo", + "ConnectionStrings": { + "PromocodeFactoryAdministrationDb": "Host=localhost;Database=promocode_factory_administration_db;Username=postgres;Password=docker;Port=5433", + "PromocodeFactoryAdministrationDbMongo": "mongodb://root:docker@localhost:27018" }, "AllowedHosts": "*" } From f546d7c754d2d4db908e4c4619cf9c5fde295e3b Mon Sep 17 00:00:00 2001 From: Grigoriy Abashkin Date: Sun, 29 Sep 2024 18:20:25 +0500 Subject: [PATCH 3/5] =?UTF-8?q?=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=B0=D0=B8?= =?UTF-8?q?=D0=B2=D0=B5=D1=82=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=D1=8B?= =?UTF-8?q?=D1=85=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D1=81=D0=BE?= =?UTF-8?q?=D1=82=D1=80=D1=83=D0=B4=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2=20=D0=B2?= =?UTF-8?q?=20=D0=B1=D0=B0=D0=B7=D1=83=20mongo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Data/EfDbInitializer.cs | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Data/EfDbInitializer.cs b/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Data/EfDbInitializer.cs index 117d5877f..de0bbf7d4 100644 --- a/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Data/EfDbInitializer.cs +++ b/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Data/EfDbInitializer.cs @@ -1,22 +1,32 @@ -namespace Pcf.Administration.DataAccess.Data +using MongoDB.Driver; +using Pcf.Administration.Core.Domain.Administration; + +namespace Pcf.Administration.DataAccess.Data { public class EfDbInitializer : IDbInitializer { private readonly DataContext _dataContext; + private readonly IMongoDatabase _db; - public EfDbInitializer(DataContext dataContext) + public EfDbInitializer(DataContext dataContext, IMongoDatabase db) { _dataContext = dataContext; + _db = db; } public void InitializeDb() { - _dataContext.Database.EnsureDeleted(); - _dataContext.Database.EnsureCreated(); - - _dataContext.AddRange(FakeDataFactory.Employees); - _dataContext.SaveChanges(); + /* _dataContext.Database.EnsureDeleted(); + _dataContext.Database.EnsureCreated(); + + _dataContext.AddRange(FakeDataFactory.Employees); + _dataContext.SaveChanges();*/ + string employeeCollectionName = typeof(Employee).Name; + _db.DropCollection(employeeCollectionName); + var collectionEmployee = _db.GetCollection(employeeCollectionName); + collectionEmployee.InsertManyAsync(FakeDataFactory.Employees); + } } } \ No newline at end of file From 68230cf1c35556307eaae2c2f94ec3c344e3112e Mon Sep 17 00:00:00 2001 From: Grigoriy Abashkin Date: Sun, 29 Sep 2024 21:43:49 +0500 Subject: [PATCH 4/5] =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D1=83?= =?UTF-8?q?=D0=B5=D1=82=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D1=8B=20=D1=80?= =?UTF-8?q?=D0=B5=D0=BF=D0=BE=D0=B7=D0=B8=D1=82=D0=BE=D1=80=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83=D1=8E=D1=89?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=BC=D0=BE=D0=BD=D0=B3=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repositories/MongoRepository.cs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Repositories/MongoRepository.cs b/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Repositories/MongoRepository.cs index 226d587b8..63d5af230 100644 --- a/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Repositories/MongoRepository.cs +++ b/NoSQL/src/Pcf.Administration/Pcf.Administration.DataAccess/Repositories/MongoRepository.cs @@ -35,19 +35,20 @@ public async Task GetByIdAsync(Guid id) var entity = await _collection.Find(x => x.Id == id).FirstOrDefaultAsync(); return entity; } - public Task> GetRangeByIdsAsync(List ids) + public async Task> GetRangeByIdsAsync(List ids) { - throw new NotImplementedException(); + var entities = await _collection.FindAsync(x => ids.Contains(x.Id)); + return await entities.ToListAsync(); } - public Task GetFirstWhere(Expression> predicate) + public async Task GetFirstWhere(Expression> predicate) { - throw new NotImplementedException(); + return await _collection.Find(predicate).FirstOrDefaultAsync(); } - public Task> GetWhere(Expression> predicate) + public async Task> GetWhere(Expression> predicate) { - throw new NotImplementedException(); + return await (await _collection.FindAsync(predicate)).ToListAsync(); } public async Task AddAsync(T entity) @@ -59,9 +60,9 @@ public async Task UpdateAsync(T entity) await _collection.FindOneAndReplaceAsync(x => x.Id == entity.Id, entity); } - public Task DeleteAsync(T entity) + public async Task DeleteAsync(T entity) { - throw new NotImplementedException(); + await _collection.FindOneAndDeleteAsync(x => x.Equals(entity)); } } From c9182e2f7be442dc357c04372213bbfd6bb68e93 Mon Sep 17 00:00:00 2001 From: Grigoriy Abashkin Date: Sun, 29 Sep 2024 22:18:00 +0500 Subject: [PATCH 5/5] =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=20=D0=BC=D0=BE=D0=BD=D0=B3=D0=BE=20=D0=B2=20?= =?UTF-8?q?=D0=BC=D0=B8=D0=BA=D1=80=D0=BE=D1=81=D0=B5=D1=80=D0=B2=D0=B8?= =?UTF-8?q?=D1=81=20=D0=BF=D1=80=D0=B5=D0=B4=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D0=BC=D0=BE=D0=BA=D0=BE=D0=B4?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD=D1=82=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NoSQL/compose.yml | 11 +++ .../Data/EfDbInitializer.cs | 30 +++++--- .../Pcf.GivingToCustomer.DataAccess.csproj | 1 + .../Repositories/MongoRepository.cs | 69 +++++++++++++++++++ .../Pcf.GivingToCustomer.WebHost/Startup.cs | 8 ++- .../appsettings.json | 6 +- 6 files changed, 113 insertions(+), 12 deletions(-) create mode 100644 NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.DataAccess/Repositories/MongoRepository.cs diff --git a/NoSQL/compose.yml b/NoSQL/compose.yml index ea3e13d97..990d10ed3 100644 --- a/NoSQL/compose.yml +++ b/NoSQL/compose.yml @@ -65,6 +65,17 @@ services: - 5435:5432 environment: - POSTGRES_PASSWORD=docker + #Administration Db mongo + promocode-factory-giving-to-customer-db-mongo: + image: "mongo:latest" + container_name: 'promocode-factory-giving-to-customer-db-mongo' + restart: always + ports: + - 27019:27017 + environment: + - MONGO_INITDB_ROOT_USERNAME=root + - MONGO_INITDB_ROOT_PASSWORD=docker + #GivingToCustomer Api promocode-factory-giving-to-customer-api: build: src/Pcf.GivingToCustomer/ diff --git a/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.DataAccess/Data/EfDbInitializer.cs b/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.DataAccess/Data/EfDbInitializer.cs index fa48e6379..a0523e71e 100644 --- a/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.DataAccess/Data/EfDbInitializer.cs +++ b/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.DataAccess/Data/EfDbInitializer.cs @@ -1,4 +1,6 @@ -using System.Threading.Tasks; +using MongoDB.Driver; +using Pcf.GivingToCustomer.Core.Domain; +using System.Threading.Tasks; namespace Pcf.GivingToCustomer.DataAccess.Data { @@ -6,22 +8,32 @@ public class EfDbInitializer : IDbInitializer { private readonly DataContext _dataContext; + private readonly IMongoDatabase _db; - public EfDbInitializer(DataContext dataContext) + public EfDbInitializer(DataContext dataContext, IMongoDatabase db) { _dataContext = dataContext; + _db = db; } public void InitializeDb() { - _dataContext.Database.EnsureDeleted(); - _dataContext.Database.EnsureCreated(); + //_dataContext.Database.EnsureDeleted(); + //_dataContext.Database.EnsureCreated(); - _dataContext.AddRange(FakeDataFactory.Preferences); - _dataContext.SaveChanges(); - - _dataContext.AddRange(FakeDataFactory.Customers); - _dataContext.SaveChanges(); + //_dataContext.AddRange(FakeDataFactory.Preferences); + //_dataContext.SaveChanges(); + + //_dataContext.AddRange(FakeDataFactory.Customers); + //_dataContext.SaveChanges(); + + _db.DropCollection(typeof(Preference).Name); + var collectionPreferences = _db.GetCollection(typeof(Preference).Name); + collectionPreferences.InsertMany(FakeDataFactory.Preferences); + + _db.DropCollection(typeof(Customer).Name); + var collectionCustomers = _db.GetCollection(typeof(Customer).Name); + collectionCustomers.InsertMany(FakeDataFactory.Customers); } } } \ No newline at end of file diff --git a/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.DataAccess/Pcf.GivingToCustomer.DataAccess.csproj b/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.DataAccess/Pcf.GivingToCustomer.DataAccess.csproj index 133057bcd..6eeeb4a23 100644 --- a/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.DataAccess/Pcf.GivingToCustomer.DataAccess.csproj +++ b/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.DataAccess/Pcf.GivingToCustomer.DataAccess.csproj @@ -6,6 +6,7 @@ + diff --git a/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.DataAccess/Repositories/MongoRepository.cs b/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.DataAccess/Repositories/MongoRepository.cs new file mode 100644 index 000000000..5f2a103fe --- /dev/null +++ b/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.DataAccess/Repositories/MongoRepository.cs @@ -0,0 +1,69 @@ +using Pcf.GivingToCustomer.Core.Abstractions.Repositories; +using Pcf.GivingToCustomer.Core.Domain; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Text; +using System.Threading.Tasks; +using MongoDB.Driver; +using MongoDB.Bson; + +namespace Pcf.GivingToCustomer.DataAccess.Repositories +{ + public class MongoRepository + : IRepository + where T : BaseEntity + { + private readonly IMongoDatabase _db; + private readonly IMongoCollection _collection; + + public MongoRepository(IMongoDatabase db) + { + _db = db; + _collection = db.GetCollection(typeof(T).Name); + } + + public async Task> GetAllAsync() + { + var entities = await _collection.Find("{}").ToListAsync(); + return entities; + } + + public async Task GetByIdAsync(Guid id) + { + var entity = await _collection.Find(x => x.Id == id).FirstOrDefaultAsync(); + return entity; + } + public async Task> GetRangeByIdsAsync(List ids) + { + var entities = await _collection.FindAsync(x => ids.Contains(x.Id)); + return await entities.ToListAsync(); + } + + public async Task GetFirstWhere(Expression> predicate) + { + return await _collection.Find(predicate).FirstOrDefaultAsync(); + } + + public async Task> GetWhere(Expression> predicate) + { + return await (await _collection.FindAsync(predicate)).ToListAsync(); + } + + public async Task AddAsync(T entity) + { + await _collection.InsertOneAsync(entity); + } + public async Task UpdateAsync(T entity) + { + await _collection.FindOneAndReplaceAsync(x => x.Id == entity.Id, entity); + } + + public async Task DeleteAsync(T entity) + { + await _collection.FindOneAndDeleteAsync(x => x.Equals(entity)); + } + + } +} \ No newline at end of file diff --git a/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.WebHost/Startup.cs b/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.WebHost/Startup.cs index 601337fc1..5edc07b3b 100644 --- a/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.WebHost/Startup.cs +++ b/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.WebHost/Startup.cs @@ -17,6 +17,7 @@ using Pcf.GivingToCustomer.DataAccess.Repositories; using Pcf.GivingToCustomer.Integration; using IConfiguration = Microsoft.Extensions.Configuration.IConfiguration; +using MongoDB.Driver; namespace Pcf.GivingToCustomer.WebHost { @@ -35,7 +36,8 @@ public void ConfigureServices(IServiceCollection services) { services.AddControllers().AddMvcOptions(x=> x.SuppressAsyncSuffixInActionNames = false); - services.AddScoped(typeof(IRepository<>), typeof(EfRepository<>)); + //services.AddScoped(typeof(IRepository<>), typeof(EfRepository<>)); + services.AddScoped(typeof(IRepository<>), typeof(MongoRepository<>)); services.AddScoped(); services.AddScoped(); services.AddDbContext(x => @@ -46,6 +48,10 @@ public void ConfigureServices(IServiceCollection services) x.UseLazyLoadingProxies(); }); + services.AddSingleton(new MongoClient(Configuration.GetConnectionString("PromocodeFactoryGivingTocustomerDbMongo")) + .GetDatabase(Configuration.GetSection("mongoDbName").Value) + ); + services.AddOpenApiDocument(options => { options.Title = "PromoCode Factory Giving To Customer API Doc"; diff --git a/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.WebHost/appsettings.json b/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.WebHost/appsettings.json index cfae3069d..bf55b7991 100644 --- a/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.WebHost/appsettings.json +++ b/NoSQL/src/Pcf.GivingToCustomer/Pcf.GivingToCustomer.WebHost/appsettings.json @@ -6,8 +6,10 @@ "Microsoft.Hosting.Lifetime": "Information" } }, - "ConnectionStrings":{ - "PromocodeFactoryGivingToCustomerDb":"Host=localhost;Database=promocode_factory_givingToCustomer_db;Username=postgres;Password=docker;Port=5435" + "mongoDbName": "promocode_factory_giving_to_customer_db_mongo", + "ConnectionStrings": { + "PromocodeFactoryGivingToCustomerDb": "Host=localhost;Database=promocode_factory_givingToCustomer_db;Username=postgres;Password=docker;Port=5435", + "PromocodeFactoryGivingToCustomerDbMongo": "mongodb://root:docker@localhost:27019" }, "AllowedHosts": "*" }