From cad806b82fa7689e87a7f00dea3719a7df2620f2 Mon Sep 17 00:00:00 2001 From: Eduardo Pires Date: Tue, 19 Apr 2022 00:35:28 -0300 Subject: [PATCH] fix: adding multiple database flavors --- docker/docker-compose-local-light.yml | 230 ++++++++++++++++++ docker/docker-compose-local.yml | 114 ++++++--- .../DevStore.Bff.Checkout/appsettings.json | 6 +- .../DatabaseFlavor/ProviderConfiguration.cs | 5 +- .../appsettings.Development.json | 9 + .../appsettings.Docker.json | 2 +- .../appsettings.Production.json | 2 +- .../DevStore.Billing.API/appsettings.json | 7 +- .../Configuration/ApiConfig.cs | Bin 3196 -> 3234 bytes .../appsettings.Development.json | 9 + .../appsettings.Docker.json | 2 +- .../appsettings.Production.json | 2 +- .../DevStore.Catalog.API/appsettings.json | 7 +- .../Configuration/ApiConfig.cs | Bin 3206 -> 3244 bytes .../appsettings.Development.json | 11 +- .../appsettings.Docker.json | 2 +- .../appsettings.Production.json | 2 +- .../DevStore.Customers.API/appsettings.json | 7 +- .../Configuration/IdentityConfig.cs | Bin 3380 -> 3330 bytes .../Extensions/IdentityMensagensPortugues.cs | Bin 8168 -> 0 bytes src/services/DevStore.Identity.API/Program.cs | Bin 2150 -> 2188 bytes .../appsettings.Development.json | 11 + .../appsettings.Docker.json | 2 +- .../appsettings.Production.json | 2 +- .../Configuration/ApiConfig.cs | Bin 3200 -> 3238 bytes .../Configuration/DbMigrationHelpers.cs | 12 + .../appsettings.Docker.json | 2 +- .../appsettings.Production.json | 2 +- .../DevStore.Orders.API/appsettings.json | 7 +- .../DevStore.Orders.Domain/Orders/Order.cs | Bin 5940 -> 5938 bytes .../Vouchers/Voucher.cs | Bin 2706 -> 3710 bytes .../Vouchers/VoucherDiscountType.cs | Bin 288 -> 286 bytes .../Configuration/ApiConfig.cs | 7 +- .../appsettings.Development.json | 9 + .../appsettings.Docker.json | 2 +- .../appsettings.Production.json | 2 +- .../appsettings.json | 5 + .../Controllers/HomeController.cs | Bin 3506 -> 3518 bytes 38 files changed, 428 insertions(+), 52 deletions(-) create mode 100644 docker/docker-compose-local-light.yml delete mode 100644 src/services/DevStore.Identity.API/Extensions/IdentityMensagensPortugues.cs diff --git a/docker/docker-compose-local-light.yml b/docker/docker-compose-local-light.yml new file mode 100644 index 0000000..7121a94 --- /dev/null +++ b/docker/docker-compose-local-light.yml @@ -0,0 +1,230 @@ +version: "3" + +services: + + generate-pfx: + image: emberstack/openssl + container_name: generate-pfx + volumes: + - ./certs:/https:rw + command: > + sh -c "[ -e "./https/devstore.academy-localhost.pfx" ] && echo File Already exist || ( + rm /https/devstore.academy-localhost.pfx && + openssl genrsa -out devstore.rsa 2048 && + openssl req -sha256 -new -key devstore.rsa -out devstore.csr -subj '/CN=localhost' && + openssl x509 -req -sha256 -days 365 -in devstore.csr -signkey devstore.rsa -out devstore.crt && + openssl pkcs12 -export -out /https/devstore.academy-localhost.pfx -inkey devstore.rsa -in devstore.crt -password pass:9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe && + rm devstore.rsa devstore.csr devstore.crt)" + + devstore-rabbit: + image: rabbitmq:3-management + container_name: devstore-rabbit + ports: + - 5672:5672 + - 15672:15672 + environment: + RABBITMQ_DEFAULT_USER: "devstore" + RABBITMQ_DEFAULT_PASS: "devstore" + + web-mvc: + image: desenvolvedorio/devstore-web-mvc-ecommerce:latest + container_name: devstore-web-mvc-ecommerce + build: + context: ../src + dockerfile: ./web/DevStore.WebApp.MVC/Dockerfile + restart: always + environment: + - ASPNETCORE_ENVIRONMENT=Docker + - ASPNETCORE_URLS=http://*:5001 + - LC_ALL=en_US.UTF-8 + - LANG=en_US.UTF-8 + # Change the two lines above to your culture (ex pt_BR) + volumes: + - dpkeys:/var/data_protection_keys/ + depends_on: + - api-catalog + - api-identity + - api-customers + - api-bff-checkout + - generate-pfx + + database-devstore: + image: mcr.microsoft.com/mssql/server:2017-latest + container_name: database-devstore + ports: + - 1433:1433 + environment: + SA_PASSWORD: "MyDB@123" + ACCEPT_EULA: "Y" + + api-identity: + image: desenvolvedorio/devstore-api-identity:latest + container_name: devstore-api-identity + build: + context: ../src + dockerfile: ./services/DevStore.Identity.API/Dockerfile + restart: always + environment: + ASPNETCORE_ENVIRONMENT: Docker + ASPNETCORE_URLS: https://+:5101;http://+5102 + ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe + ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx + CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSUsers;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + AppSettings__DatabaseType: SqlServer + volumes: + - ./certs:/https:ro + depends_on: + - devstore-rabbit + - database-devstore + - generate-pfx + + api-cart: + image: desenvolvedorio/devstore-api-cart:latest + container_name: devstore-api-cart + build: + context: ../src + dockerfile: ./services/DevStore.ShoppingCart.API/Dockerfile + restart: always + environment: + ASPNETCORE_ENVIRONMENT: Docker + ASPNETCORE_URLS: https://+:5201;http://+5202 + ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe + ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx + CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSShoppingCart;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + AppSettings__DatabaseType: SqlServer + volumes: + - ./certs:/https:ro + depends_on: + - devstore-rabbit + - api-identity + - database-devstore + - generate-pfx + + api-catalog: + image: desenvolvedorio/devstore-api-catalog:latest + container_name: devstore-api-catalog + build: + context: ../src + dockerfile: ./services/DevStore.Catalog.API/Dockerfile + restart: always + environment: + ASPNETCORE_ENVIRONMENT: Docker + ASPNETCORE_URLS: https://+:5301;http://+5302 + ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe + ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx + CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSCatalog;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + AppSettings__DatabaseType: SqlServer + volumes: + - ./certs:/https:ro + depends_on: + - devstore-rabbit + - database-devstore + - generate-pfx + + api-customers: + image: desenvolvedorio/devstore-api-customers:latest + container_name: devstore-api-customers + build: + context: ../src + dockerfile: ./services/DevStore.Customers.API/Dockerfile + restart: always + environment: + ASPNETCORE_ENVIRONMENT: Docker + ASPNETCORE_URLS: https://+:5401;http://+5402 + ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe + ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx + CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSCustomers;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + AppSettings__DatabaseType: SqlServer + volumes: + - ./certs:/https:ro + depends_on: + - devstore-rabbit + - api-identity + - database-devstore + - generate-pfx + + api-bff-checkout: + image: desenvolvedorio/devstore-api-bff-checkout:latest + container_name: devstore-api-bff-checkout + build: + context: ../src + dockerfile: ./api-gateways/DevStore.Bff.Checkout/Dockerfile + restart: always + environment: + ASPNETCORE_ENVIRONMENT: Docker + ASPNETCORE_URLS: https://+:5501;http://+5502 + ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe + ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx + volumes: + - ./certs:/https:ro + depends_on: + - devstore-rabbit + - api-identity + - api-cart + - api-billing + - api-order + - generate-pfx + + api-billing: + image: desenvolvedorio/devstore-api-billing:latest + container_name: devstore-api-billing + build: + context: ../src + dockerfile: ./services/DevStore.Billing.API/Dockerfile + restart: always + environment: + ASPNETCORE_ENVIRONMENT: Docker + ASPNETCORE_URLS: https://+:5601;http://+5602 + ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe + ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx + CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSBilling;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + AppSettings__DatabaseType: SqlServer + volumes: + - ./certs:/https:ro + depends_on: + - devstore-rabbit + - api-identity + - api-order + - database-devstore + - generate-pfx + + api-order: + image: desenvolvedorio/devstore-api-order:latest + container_name: devstore-api-order + build: + context: ../src + dockerfile: ./services/DevStore.Orders.API/Dockerfile + restart: always + environment: + ASPNETCORE_ENVIRONMENT: Docker + ASPNETCORE_URLS: https://+:5701;http://+5702 + ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe + ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx + CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSOrders;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + AppSettings__DatabaseType: SqlServer + volumes: + - ./certs:/https:ro + depends_on: + - devstore-rabbit + - database-devstore + - api-identity + - generate-pfx + + devstore-server: + image: desenvolvedorio/devstore-server:latest + container_name: devstore-server + build: + context: ./ + dockerfile: ./nginx/Dockerfile + restart: always + volumes: + - ./nginx/conf.d:/etc/nginx/conf.d:ro + ports: + - "7500:80" + - "7501:443" + depends_on: + - web-mvc + +volumes: + dpkeys: + diff --git a/docker/docker-compose-local.yml b/docker/docker-compose-local.yml index b84111c..c31e2ed 100644 --- a/docker/docker-compose-local.yml +++ b/docker/docker-compose-local.yml @@ -2,6 +2,20 @@ version: "3" services: + generate-pfx: + image: emberstack/openssl + container_name: generate-pfx + volumes: + - ./certs:/https:rw + command: > + sh -c "[ -e "./https/devstore.academy-localhost.pfx" ] && echo File Already exist || ( + rm /https/devstore.academy-localhost.pfx && + openssl genrsa -out devstore.rsa 2048 && + openssl req -sha256 -new -key devstore.rsa -out devstore.csr -subj '/CN=localhost' && + openssl x509 -req -sha256 -days 365 -in devstore.csr -signkey devstore.rsa -out devstore.crt && + openssl pkcs12 -export -out /https/devstore.academy-localhost.pfx -inkey devstore.rsa -in devstore.crt -password pass:9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe && + rm devstore.rsa devstore.csr devstore.crt)" + devstore-rabbit: image: rabbitmq:3-management container_name: devstore-rabbit @@ -12,15 +26,6 @@ services: RABBITMQ_DEFAULT_USER: "devstore" RABBITMQ_DEFAULT_PASS: "devstore" - sql-server: - image: mcr.microsoft.com/mssql/server:2017-latest - container_name: devstore-sql-server - expose: - - 1433 - environment: - SA_PASSWORD: "MyDB@123" - ACCEPT_EULA: "Y" - web-mvc: image: desenvolvedorio/devstore-web-mvc-ecommerce:latest container_name: devstore-web-mvc-ecommerce @@ -41,6 +46,16 @@ services: - api-identity - api-customers - api-bff-checkout + - generate-pfx + + database-identity: + image: mcr.microsoft.com/mssql/server:2017-latest + container_name: devstore-database-identity + expose: + - 1433 + environment: + SA_PASSWORD: "MyDB@123" + ACCEPT_EULA: "Y" api-identity: image: desenvolvedorio/devstore-api-identity:latest @@ -58,7 +73,17 @@ services: - ./certs:/https:ro depends_on: - devstore-rabbit - - sql-server + - database-identity + - generate-pfx + + database-cart: + image: mcr.microsoft.com/mssql/server:2017-latest + container_name: devstore-database-cart + expose: + - 1433 + environment: + SA_PASSWORD: "MyDB@123" + ACCEPT_EULA: "Y" api-cart: image: desenvolvedorio/devstore-api-cart:latest @@ -77,7 +102,17 @@ services: depends_on: - devstore-rabbit - api-identity - - sql-server + - database-cart + - generate-pfx + + database-catalog: + image: mcr.microsoft.com/mssql/server:2017-latest + container_name: devstore-database-catalog + expose: + - 1433 + environment: + SA_PASSWORD: "MyDB@123" + ACCEPT_EULA: "Y" api-catalog: image: desenvolvedorio/devstore-api-catalog:latest @@ -95,7 +130,17 @@ services: - ./certs:/https:ro depends_on: - devstore-rabbit - - sql-server + - database-catalog + - generate-pfx + + database-customers: + image: mcr.microsoft.com/mssql/server:2017-latest + container_name: devstore-database-customers + expose: + - 1433 + environment: + SA_PASSWORD: "MyDB@123" + ACCEPT_EULA: "Y" api-customers: image: desenvolvedorio/devstore-api-customers:latest @@ -114,7 +159,8 @@ services: depends_on: - devstore-rabbit - api-identity - - sql-server + - database-customers + - generate-pfx api-bff-checkout: image: desenvolvedorio/devstore-api-bff-checkout:latest @@ -136,6 +182,17 @@ services: - api-cart - api-billing - api-order + - generate-pfx + + database-billing: + image: mcr.microsoft.com/mssql/server:2017-latest + container_name: devstore-database-billing + expose: + - 1433 + environment: + SA_PASSWORD: "MyDB@123" + ACCEPT_EULA: "Y" + api-billing: image: desenvolvedorio/devstore-api-billing:latest @@ -155,7 +212,17 @@ services: - devstore-rabbit - api-identity - api-order - - sql-server + - database-billing + - generate-pfx + + database-order: + image: mcr.microsoft.com/mssql/server:2017-latest + container_name: devstore-database-order + expose: + - 1433 + environment: + SA_PASSWORD: "MyDB@123" + ACCEPT_EULA: "Y" api-order: image: desenvolvedorio/devstore-api-order:latest @@ -173,8 +240,9 @@ services: - ./certs:/https:ro depends_on: - devstore-rabbit - - sql-server - - api-identity + - database-order + - api-identity + - generate-pfx devstore-server: image: desenvolvedorio/devstore-server:latest @@ -191,20 +259,6 @@ services: depends_on: - web-mvc - generate-pfx: - image: emberstack/openssl - container_name: generate-pfx - volumes: - - ./certs:/https:rw - command: > - sh -c "[ -e "./https/devstore.academy-localhost.pfx" ] && echo File Already exist || ( - rm /https/devstore.academy-localhost.pfx && - openssl genrsa -out devstore.rsa 2048 && - openssl req -sha256 -new -key devstore.rsa -out devstore.csr -subj '/CN=localhost' && - openssl x509 -req -sha256 -days 365 -in devstore.csr -signkey devstore.rsa -out devstore.crt && - openssl pkcs12 -export -out /https/devstore.academy-localhost.pfx -inkey devstore.rsa -in devstore.crt -password pass:9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe && - rm devstore.rsa devstore.csr devstore.crt)" - volumes: dpkeys: diff --git a/src/api-gateways/DevStore.Bff.Checkout/appsettings.json b/src/api-gateways/DevStore.Bff.Checkout/appsettings.json index d9d9a9b..53d7794 100644 --- a/src/api-gateways/DevStore.Bff.Checkout/appsettings.json +++ b/src/api-gateways/DevStore.Bff.Checkout/appsettings.json @@ -6,5 +6,9 @@ "Microsoft.Hosting.Lifetime": "Information" } }, - "AllowedHosts": "*" + "AllowedHosts": "*", + "AppSettings": { + "Issuer": "https://devstore.academy", + "Audience": "DevStore" + } } diff --git a/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/ProviderConfiguration.cs b/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/ProviderConfiguration.cs index 87cc38b..eab8b2d 100644 --- a/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/ProviderConfiguration.cs +++ b/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/ProviderConfiguration.cs @@ -27,7 +27,10 @@ public static void Build(string connString) options => options.UseMySql(_connectionString, ServerVersion.AutoDetect(_connectionString), sql => sql.MigrationsAssembly(MigrationAssembly)); public Action Postgre => - options => options.UseNpgsql(_connectionString, sql => sql.MigrationsAssembly(MigrationAssembly)); + options => { + options.UseNpgsql(_connectionString, sql => sql.MigrationsAssembly(MigrationAssembly)); + AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); + }; public Action Sqlite => options => options.UseSqlite(_connectionString, sql => sql.MigrationsAssembly(MigrationAssembly)); diff --git a/src/services/DevStore.Billing.API/appsettings.Development.json b/src/services/DevStore.Billing.API/appsettings.Development.json index 780c752..bd994c7 100644 --- a/src/services/DevStore.Billing.API/appsettings.Development.json +++ b/src/services/DevStore.Billing.API/appsettings.Development.json @@ -8,6 +8,15 @@ }, "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=DSBilling;Trusted_Connection=True;MultipleActiveResultSets=true" + + // Postgre Connection + //"DefaultConnection": "Server=localhost;Port=5432;Database=DSBilling;User Id=sa;Password=MyDB@123;" + + // MySql Connection + //"DefaultConnection": "server=localhost,port=3306;database=DSBilling;user=sa;password=MyDB@123" + + // SQLite Connection + //"DefaultConnection": "Data Source=DSBilling.db" }, "MessageQueueConnection": { "MessageBus": "host=localhost:5672;publisherConfirms=true;timeout=10;username=devstore;password=devstore" diff --git a/src/services/DevStore.Billing.API/appsettings.Docker.json b/src/services/DevStore.Billing.API/appsettings.Docker.json index 04393e4..9c8439a 100644 --- a/src/services/DevStore.Billing.API/appsettings.Docker.json +++ b/src/services/DevStore.Billing.API/appsettings.Docker.json @@ -7,7 +7,7 @@ } }, "ConnectionStrings": { - "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=DSBilling;MultipleActiveResultSets=true" + "DefaultConnection": "Server=database-billing;Database=DSBilling;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, "MessageQueueConnection": { "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" diff --git a/src/services/DevStore.Billing.API/appsettings.Production.json b/src/services/DevStore.Billing.API/appsettings.Production.json index a0ab141..9c8439a 100644 --- a/src/services/DevStore.Billing.API/appsettings.Production.json +++ b/src/services/DevStore.Billing.API/appsettings.Production.json @@ -7,7 +7,7 @@ } }, "ConnectionStrings": { - "DefaultConnection": "Server=sql-server;Database=DSBilling;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + "DefaultConnection": "Server=database-billing;Database=DSBilling;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, "MessageQueueConnection": { "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" diff --git a/src/services/DevStore.Billing.API/appsettings.json b/src/services/DevStore.Billing.API/appsettings.json index d9d9a9b..ed971cd 100644 --- a/src/services/DevStore.Billing.API/appsettings.json +++ b/src/services/DevStore.Billing.API/appsettings.json @@ -6,5 +6,10 @@ "Microsoft.Hosting.Lifetime": "Information" } }, - "AllowedHosts": "*" + "AllowedHosts": "*", + "AppSettings": { + "Issuer": "https://devstore.academy", + "Audience": "DevStore", + "DatabaseType": "SqlServer" + } } diff --git a/src/services/DevStore.Catalog.API/Configuration/ApiConfig.cs b/src/services/DevStore.Catalog.API/Configuration/ApiConfig.cs index 5a17c95f4d6080e18da0e6a1520d58c5818002e9..f2e0f0c50b905f583946a072b2a611f22b07ea0f 100644 GIT binary patch delta 216 zcmew(u}E^lyoo_t(k={%3?)FE1jNM*sSIumIY3q!Lq0>%e zx_Fc`=rIH^6ah7s0TrhJjVhXaky(1O3X|HzKVlP4G)(qk64|_haT$}kGf+_;LmE(7 yIzuT?ODeiXpesQ3hqD;Uy8vZNfH)aQqFb)PkUY7NS&~t6@@iJc%`;e^umJ$d)-@sk delta 206 zcmZ1^`A1^HyvZ_5B9rGZPE*cfC}GG1;z|ZLh9ZVUhFpeJhH{2{AUm7E8BC{6KFDOd z*^Ox#6Q?6X3J|(5Buy4(HJmKLW-$2z3&-RT&1Aq8k~(d4~M(vvlq)Fv^CO+3>uIe@Aqx9w~78%CLerz0*53%Mr*}~>GBDN5K^bR^bJuq4sn~%j za4pofkPkTB2jtGrN`LfxrS_rcp^)A?dhbg9!{;iiUxP>N%{3Q1fsFeL`&rD6#VoBO zS)Pv5F7vnZyWnjC2sBK1r&m70&7GZT(X$cC~pr5={)v3K-Vo&XBzlxg^ug|__B--)t3t!WyaAYC; zZlu{E{`dpJJ|d5ANfPDuH9RXG}dZoKC*68mkLFHx~xY~%%A+;b*>0jjd$$G3Jy&iFE1TO?u0pY0%8>iEdV;a-u3(R|106K&QO#lD@ diff --git a/src/services/DevStore.Identity.API/appsettings.Development.json b/src/services/DevStore.Identity.API/appsettings.Development.json index e43796e..cbb8c3c 100644 --- a/src/services/DevStore.Identity.API/appsettings.Development.json +++ b/src/services/DevStore.Identity.API/appsettings.Development.json @@ -7,7 +7,18 @@ } }, "ConnectionStrings": { + // Sql Server Connection "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=DSUsers;Trusted_Connection=True;MultipleActiveResultSets=true" + + // Postgre Connection + //"DefaultConnection": "Server=localhost;Port=5432;Database=DSUsers;User Id=sa;Password=MyDB@123;" + + // MySql Connection + //"DefaultConnection": "server=localhost,port=3306;database=DSUsers;user=sa;password=MyDB@123" + + // SQLite Connection + //"DefaultConnection": "Data Source=DSUsers.db" + }, "MessageQueueConnection": { "MessageBus": "host=localhost:5672;publisherConfirms=true;timeout=10;username=devstore;password=devstore" diff --git a/src/services/DevStore.Identity.API/appsettings.Docker.json b/src/services/DevStore.Identity.API/appsettings.Docker.json index 97b83c0..e4c3e2a 100644 --- a/src/services/DevStore.Identity.API/appsettings.Docker.json +++ b/src/services/DevStore.Identity.API/appsettings.Docker.json @@ -7,7 +7,7 @@ } }, "ConnectionStrings": { - "DefaultConnection": "Server=sql-server;Database=DSUsers;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + "DefaultConnection": "Server=database-identity;Database=DSUsers;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, "MessageQueueConnection": { "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" diff --git a/src/services/DevStore.Identity.API/appsettings.Production.json b/src/services/DevStore.Identity.API/appsettings.Production.json index 97b83c0..e4c3e2a 100644 --- a/src/services/DevStore.Identity.API/appsettings.Production.json +++ b/src/services/DevStore.Identity.API/appsettings.Production.json @@ -7,7 +7,7 @@ } }, "ConnectionStrings": { - "DefaultConnection": "Server=sql-server;Database=DSUsers;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + "DefaultConnection": "Server=database-identity;Database=DSUsers;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, "MessageQueueConnection": { "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" diff --git a/src/services/DevStore.Orders.API/Configuration/ApiConfig.cs b/src/services/DevStore.Orders.API/Configuration/ApiConfig.cs index 293dfde342401845d244eba679e751bac96b4ac8..5e92bec15aaec604e03fe3d7acd50f7fdef8747e 100644 GIT binary patch delta 227 zcmZpWTqZeT*~BO2AIY2TMXiOQH)R;Vx zMLJNA!5zpe0UMkL)RD@N4A&hDWEBCOlE;wFpuwO7v?-M#4d|d!ph?(uC^2Ymu4h$e F2LP9lEj$1K diff --git a/src/services/DevStore.Orders.API/Configuration/DbMigrationHelpers.cs b/src/services/DevStore.Orders.API/Configuration/DbMigrationHelpers.cs index cf96bf1..aeb9041 100644 --- a/src/services/DevStore.Orders.API/Configuration/DbMigrationHelpers.cs +++ b/src/services/DevStore.Orders.API/Configuration/DbMigrationHelpers.cs @@ -1,5 +1,7 @@ using System; +using System.Linq; using System.Threading.Tasks; +using DevStore.Orders.Domain.Vouchers; using DevStore.Orders.Infra.Context; using DevStore.WebAPI.Core.Configuration; using Microsoft.AspNetCore.Builder; @@ -35,8 +37,18 @@ public static async Task EnsureSeedData(IServiceProvider serviceProvider) if (env.IsDevelopment() || env.IsEnvironment("Docker")) await ssoContext.Database.EnsureCreatedAsync(); + await EnsureSeedVouchers(ssoContext); + } + + private static async Task EnsureSeedVouchers(OrdersContext context) + { + if (context.Vouchers.Any()) + return; + await context.Vouchers.AddAsync(new Voucher("30-OFF",30,0,5000,VoucherDiscountType.Percentage, DateTime.Now.AddYears(5))); + await context.Vouchers.AddAsync(new Voucher("50-OFF",0,50,5000, VoucherDiscountType.Value, DateTime.Now.AddYears(5))); + await context.SaveChangesAsync(); } } diff --git a/src/services/DevStore.Orders.API/appsettings.Docker.json b/src/services/DevStore.Orders.API/appsettings.Docker.json index 8b536e1..502244c 100644 --- a/src/services/DevStore.Orders.API/appsettings.Docker.json +++ b/src/services/DevStore.Orders.API/appsettings.Docker.json @@ -8,7 +8,7 @@ }, "AllowedHosts": "*", "ConnectionStrings": { - "DefaultConnection": "Server=sql-server;Database=DSOrders;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + "DefaultConnection": "Server=database-order;Database=DSOrders;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, "MessageQueueConnection": { "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" diff --git a/src/services/DevStore.Orders.API/appsettings.Production.json b/src/services/DevStore.Orders.API/appsettings.Production.json index 8b536e1..502244c 100644 --- a/src/services/DevStore.Orders.API/appsettings.Production.json +++ b/src/services/DevStore.Orders.API/appsettings.Production.json @@ -8,7 +8,7 @@ }, "AllowedHosts": "*", "ConnectionStrings": { - "DefaultConnection": "Server=sql-server;Database=DSOrders;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + "DefaultConnection": "Server=database-order;Database=DSOrders;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, "MessageQueueConnection": { "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" diff --git a/src/services/DevStore.Orders.API/appsettings.json b/src/services/DevStore.Orders.API/appsettings.json index d9d9a9b..ed971cd 100644 --- a/src/services/DevStore.Orders.API/appsettings.json +++ b/src/services/DevStore.Orders.API/appsettings.json @@ -6,5 +6,10 @@ "Microsoft.Hosting.Lifetime": "Information" } }, - "AllowedHosts": "*" + "AllowedHosts": "*", + "AppSettings": { + "Issuer": "https://devstore.academy", + "Audience": "DevStore", + "DatabaseType": "SqlServer" + } } diff --git a/src/services/DevStore.Orders.Domain/Orders/Order.cs b/src/services/DevStore.Orders.Domain/Orders/Order.cs index 4d4f7aa531fb64ef2b612d95e0f3d3adad0a7802..fc77a0fda29bf6ad0acd0597a49ab93d0b8aa584 100644 GIT binary patch delta 36 ucmV+<0NekxF0wALtP+#b6B3g`6CRUL10IvG0|=A+6d04x6Be^F69NSO+YDF$ delta 52 zcmdm_w?%Km8X@6)h9ZV!hE#?;h7yKEhIAk+cd{e5_~Z@D9Fqf><-l}~Ajf7dVGR}l Dl0*&@ diff --git a/src/services/DevStore.Orders.Domain/Vouchers/Voucher.cs b/src/services/DevStore.Orders.Domain/Vouchers/Voucher.cs index 229607afe103873754357b4e80b6f620466c60d8..53e98d9649e2ae167ffcc2712b47b338b36dd770 100644 GIT binary patch delta 473 zcmaKo!AiqG6h&{yG@ZCnG_6#$rVFKD1rc18B52oAH||4HG*DAbThNVufe60;5JA7j zwLjnwh<7Gkh3aPJao>G+&YPFo&*od*d%VCHGsL*U5INeIV9Gm1hD(Ih$4J=eur_zh z&NU*8a7^XK&cr-3PDPyf%b9R)V$){UYx2w+(}2Y-0U|4>jJZcgB6rV8HTc-EVM(E19->`0_0;gyGKo0$;RYrPMKJ>1v W_*!1ICl5N5f!~(1%F=u2>V*3Bgo`B8Fs!RE9i;5{5*EbcWQ4w^bENfdUE)wm@viz{|h|q#>{t%&TPp E0J5A5I{*Lx delta 37 qcmbQow18>C3E_N(B8Fs!RE9i;5{5*EbRa8t;!Ra%pzvfyMp*#LcM13a diff --git a/src/services/DevStore.ShoppingCart.API/Configuration/ApiConfig.cs b/src/services/DevStore.ShoppingCart.API/Configuration/ApiConfig.cs index 8123c75..0414b13 100644 --- a/src/services/DevStore.ShoppingCart.API/Configuration/ApiConfig.cs +++ b/src/services/DevStore.ShoppingCart.API/Configuration/ApiConfig.cs @@ -1,5 +1,7 @@ using DevStore.ShoppingCart.API.Services.gRPC; -using Microsoft.EntityFrameworkCore; +using DevStore.WebAPI.Core.DatabaseFlavor; +using static DevStore.WebAPI.Core.DatabaseFlavor.ProviderConfiguration; +using DevStore.ShoppingCart.API.Data; namespace DevStore.ShoppingCart.API.Configuration { @@ -7,8 +9,7 @@ public static class ApiConfig { public static void AddApiConfiguration(this IServiceCollection services, IConfiguration configuration) { - services.AddDbContext(options => - options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"))); + services.ConfigureProviderForContext(DetectDatabase(configuration)); services.AddGrpc(); diff --git a/src/services/DevStore.ShoppingCart.API/appsettings.Development.json b/src/services/DevStore.ShoppingCart.API/appsettings.Development.json index a850f71..9e04779 100644 --- a/src/services/DevStore.ShoppingCart.API/appsettings.Development.json +++ b/src/services/DevStore.ShoppingCart.API/appsettings.Development.json @@ -8,6 +8,15 @@ }, "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=DSShoppingCart;Trusted_Connection=True;MultipleActiveResultSets=true" + + // Postgre Connection + //"DefaultConnection": "Server=localhost;Port=5432;Database=DSShoppingCart;User Id=sa;Password=MyDB@123;" + + // MySql Connection + //"DefaultConnection": "server=localhost,port=3306;database=DSShoppingCart;user=sa;password=MyDB@123" + + // SQLite Connection + //"DefaultConnection": "Data Source=DSShoppingCart.db" }, "MessageQueueConnection": { "MessageBus": "host=localhost:5672;publisherConfirms=true;timeout=10;username=devstore;password=devstore" diff --git a/src/services/DevStore.ShoppingCart.API/appsettings.Docker.json b/src/services/DevStore.ShoppingCart.API/appsettings.Docker.json index cc10dc8..ab3c0f4 100644 --- a/src/services/DevStore.ShoppingCart.API/appsettings.Docker.json +++ b/src/services/DevStore.ShoppingCart.API/appsettings.Docker.json @@ -7,7 +7,7 @@ } }, "ConnectionStrings": { - "DefaultConnection": "Server=sql-server;Database=DSShoppingCart;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + "DefaultConnection": "Server=database-cart;Database=DSShoppingCart;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, "MessageQueueConnection": { "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" diff --git a/src/services/DevStore.ShoppingCart.API/appsettings.Production.json b/src/services/DevStore.ShoppingCart.API/appsettings.Production.json index cc10dc8..ab3c0f4 100644 --- a/src/services/DevStore.ShoppingCart.API/appsettings.Production.json +++ b/src/services/DevStore.ShoppingCart.API/appsettings.Production.json @@ -7,7 +7,7 @@ } }, "ConnectionStrings": { - "DefaultConnection": "Server=sql-server;Database=DSShoppingCart;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + "DefaultConnection": "Server=database-cart;Database=DSShoppingCart;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, "MessageQueueConnection": { "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" diff --git a/src/services/DevStore.ShoppingCart.API/appsettings.json b/src/services/DevStore.ShoppingCart.API/appsettings.json index 8983e0f..8eaaf5d 100644 --- a/src/services/DevStore.ShoppingCart.API/appsettings.json +++ b/src/services/DevStore.ShoppingCart.API/appsettings.json @@ -5,5 +5,10 @@ "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } + }, + "AppSettings": { + "Issuer": "https://devstore.academy", + "Audience": "DevStore", + "DatabaseType": "SqlServer" } } diff --git a/src/web/DevStore.WebApp.MVC/Controllers/HomeController.cs b/src/web/DevStore.WebApp.MVC/Controllers/HomeController.cs index 3f3e5b6c5f41191edf07012be5abf3addaed9bab..659e4acd9e55c27612cdf251f36933da8c5da765 100644 GIT binary patch delta 22 ecmdlay-#{WA3LMtT4DF}W5 delta 48 wcmdldy-9jQAG^FiLo!1?LlF?BGL$kX0C6smOa+VNGbm0D